Появилась необходимость выводить журналы (логи) программ на экран подобно команде tail -fn только в иксах, да ещё чтобы не сворачивалось, не перемещалось, и т.д.
Долго разбирался в root-tail,с koi8-r да и чтобы не подвисал текст при сворачивании окон, в общем решил поискать что то ещё. Этим что то окозался conky.
Conky — это программа для системного мониторинга под X Window System. Она поддерживает POSIX системы, включая GNU/Linux и FreeBSD. Это свободная программа, распространяющаяся под лицензией BSD. Conky может отслеживать многие показатели системы: CPU, память, swap, размеры дисков, температуру, скорость закачки и загрузки, системные сообщения и многое другое. Conky имеет множество настроек и конфигураций.
Conky является форком программы torsmo, системного монитора, который больше не развивается.
Приступим к установке:
# cd /usr/ports/ # make search name=conky-1 Port: conky-1.8.0 Path: /usr/ports/sysutils/conky Info: An advanced, highly configurable system monitor for X Maint: ntarmos@cs.uoi.gr B-deps: damageproto-1.2.0 fixesproto-4.1.1 gettext-0.18_1 gmake-3.81_4 kbproto-1.0.4 libX11-1.3.3,1 libXau-1.0.5 libXdamage-1.1.2 libXdmcp-1.0.3 libXext-1.1.1,1 libXfixes-4.0.4 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.6 pkg-config-0.25 xextproto-7.1.1 xproto-7.0.16 R-deps: damageproto-1.2.0 fixesproto-4.1.1 kbproto-1.0.4 libX11-1.3.3,1 libXau-1.0.5 libXdamage-1.1.2 libXdmcp-1.0.3 libXext-1.1.1,1 libXfixes-4.0.4 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.6 pkg-config-0.25 xextproto-7.1.1 xproto-7.0.16 WWW: _http://conky.sourceforge.net/ cd /usr/ports/sysutils/conky && make config
Options for conky 1.8.0 [ ] APCUPSD Enable APCUPSD support [ ] AUDACIOUS Enable Audacious support [ ] BMPX Enable BMPX support [ ] MPD Enable MPD support [ ] NCURSES Enable ncurses support [ ] RSS Enable RSS support [ ] METAR Enable METAR Weather support [ ] XOAP Enable XOAP Weather support [ ] XMMS2 Enable XMMS2 support [X] DOUBLE_BUFFER Enable double buffering [ ] IMLIB2 Enable Imlib2 support [ ] LUA Enable Lua support [ ] LUA_CAIRO Enable Lua-Cairo binding (impl. Lua) [ ] LUA_IMLIB2 Enable Lua-Imlib2 binding (impl. Lua/Imlib2) [X] XFT Enable Xft support # make install clean
После установки изменим конфигурационный файл:
# vi ~/.conkyrc
alignment top_right #расположение окна background no #работать как демон border_width 0 cpu_avg_samples 2 default_color green #думаю объяснять не надо default_shade_color black default_outline_color white color1 DFAE0D #определяем переменную color1 color2 orange #определяем переменную color2 draw_borders no draw_graph_borders yes #окантовка draw_outline no draw_shades no stippled_borders 2 use_xft no #шрифты иксов #xftfont DejaVu Sans Mono:size=8 #какой шрифт использовать gap_x 5 #отступ от края экрана gap_y 5 #отступ от края экрана minimum_size 330 10 #думаю это тоже ясно maximum_width 450 net_avg_samples 2 no_buffers yes out_to_console no out_to_stderr no extra_newline no own_window yes own_window_transparent yes #прозрачный фон (не работает в enlightenment) own_window_colour navyblue own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager own_window_class Conky own_window_type desktop double_buffer yes stippled_borders 0 update_interval 1 uppercase no use_spacer yes show_graph_scale no show_graph_range no xftalpha 0.8 TEXT ${color1}[System] ${color1}Host:$color $nodename ${color1}OS:$color ${exec uname -sp} #${color1}OS:$color ${exec uname -nps} $kernel ($machine) #${color1}Platform:$color ${exec uname -p} ${color1}Uptime:$color $uptime ${color1}[CPU] ${color1}Frequency:$color $freq MHz ${color1}Frequency (in GHz):$color $freq_g GHz ${color1}CPU Usage:$color $cpu% ${color}${cpugraph cpu0 20,400 000000 33b0dc } #${color1}CPU Usage:$color $cpu% $color2 ${cpubar 7} #${color1} core1 ${color}${cpu cpu0}% #${cpugraph cpu0 20,100 000000 33b0dc } #${color1} core2 ${color}${cpu cpu1}% #${cpugraph cpu1 20,100 000000 33b0dc } #${color1} core3 ${color}${cpu cpu2}% #${cpugraph cpu2 20,100 000000 33b0dc } ${color1}[Memory] ${color1}RAM:$color $mem/ $memmax ($memperc%) ${color2}${membar 3,300} ${color1}Swap:$color $swap/ $swapmax ($swapperc%) ${color2}${swapbar 3,300} #${color1}Processes:$color $processes ${color1}Running:$color $running_processes ${color1}[Network] #${downspeedgraph age0 62,230 104E8B 0077ff} ${color1}Network$color (nfe0) ${color1}IPv4:$color ${addr nfe0} ${color1}Down:$color ${downspeed nfe0} k/s ${downspeedgraph nfe0 20,400 000000 33b0dc} ${color1}Up:$color ${upspeed nfe0} k/s ${upspeedgraph nfe0 20,400 000000 33b0dc} ${color1}Network$color (rl0) ${color1}IPv4:$color ${addr rl0} ${color1}Down:$color ${downspeed rl0} k/s ${downspeedgraph rl0 20,400 000000 33b0dc} ${color1}Up:$color ${upspeed rl0} k/s ${upspeedgraph rl0 20,400 000000 33b0dc} ${color1}Filesystems: ${color}/ ${fs_used /}/${fs_size /}${fs_used_perc /}% ${color2}${fs_bar 3,300 /} ${color}/root ${fs_used /root}/${fs_size /root}${fs_used_perc /root}% ${color2}${fs_bar 3,300 /root} ${color}/usr ${fs_used /usr}/${fs_size /usr}${fs_used_perc /usr}% ${color2}${fs_bar 3,300 /usr} ${color}/var ${fs_used /var}/${fs_size /var}${fs_used_perc /var}% ${color2}${fs_bar 3,300 /var} ${color}/mnt/nfs-178 ${fs_used /mnt/nfs-178} /${fs_size /mnt/nfs-178}${fs_used_perc /mnt/nfs-178}% ${color2}${fs_bar 3,300 /mnt/nfs-178} ${color1}Name PID CPU% MEM% ${color} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ${color1}${execi 10 tail -n 3 /var/log/arpwatch.log | awk '{print $1" "$2" "$3" "$6" "$7" "$8" "$9" "$10" "$11" " }'}
Для автоматического запуска был создан файлик по примеру root-tail который я подсмотрел у lissyara.su
cat ~/.kde/Autostart/conky.desktop
[Desktop Entry] Comment= Comment[ru]= Encoding=koi8-r Exec[$e]=/usr/local/bin/conky & GenericName= GenericName[ru]= MimeType= Name= Name[ru]= Path[$e]= StartupNotify=false Terminal=false TerminalOptions= Type=Application X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username= X-KDE-autostart-after=kdesktop
Готово!: