Поиск по этому блогу

суббота, 4 сентября 2010 г.

Conky

Conky — это программа для системного мониторинга под X Window System. Она поддерживает POSIX‐системы, включая GNU/Linux и FreeBSD. [2] Это свободная программа, распространяющаяся под лицензией BSD ©
1.Установим conky
sudo apt-get install conky

2.Установим необходимое для работы с conky-colo
sudo aptitude install python-statgrab ttf-liberation hddtemp lm-sensors curl conky-all;sudo chmod u+s /usr/sbin/hddtemp;sudo sensors-detect
3.Скачаем conky-colors
wget http://gnome-look.org/CONTENT/content-files/92328-conky_colors.tar.gz
(по умолчанию все кидает в домашнею директорию, но можно выбрать и другую, главное не забыть об этом)

4.Работатем с тем что скачали.
-разархивируем
tar -xzf 92328-conky_colors.tar.gz
-переходим в папку
cd conky_colors
-Установка из исходника
make
-Идем и смотрим, чем можно на фаршировать коньки:)
./conky-colors --help
-Ну что то подобное можно добавить еще кучу всякой шняги:)
./conky-colors --lang=ru --theme=gnome-human --cpu=1 --cputemp --proc=4 --clock=modern --calendar --hd=mix --hddtemp1=sda --banshee=default | vinyl --network --eth=0 --weather=UPXX0020 --unit=C --side=right --nvidia --ubuntu --swap
-после подбора выполняем
make install
5.Дорабатываем погоду. На сайте http://www.weather.com/outlook/weatherbyregion/EUR смотрим ID своего города и меняем его (--weather=UPXX0020) на свой.
6.Далдее нужно отредактировать и переместить conkyForecast.config
gedit ~/.conkycolors/conkyForecast.config && cp ~/.conkycolors/conkyForecast.config ~/.conkyForecast.config
-в отрывшемся редакторе дописываем
LOCALE =
XOAP_PARTNER_ID = 1145285905
XOAP_LICENCE_KEY = 0c1bd826927639b7
Сохраняем и закрываем.
-Далее.
sudo fc-cache -v -f
Alt+F2
conky
7.Смотрим как всё отображается на экране, и как в терминале попраляем недочёты.
7.Система -> Параметры -> Запускаемые приложения ..... добавляем с названием Conky и с выполнением команды sh -c "sleep 7 && conky" , или nice -n 80 conky (дабы избежать глюков при запуске)
Фсе :)


Conky - Подробная настройка


Эти строчки нужны для корректного отображения окна conky. Скорее всего менять их вам не придется.
background no
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

Используем XFT шрифты. Выбор таких шрифтов не велик - Terminus, Vera, Sans и Mono. Вы можете закоментировать эти две строчки и сможете использовать обычные шрифты, но только с XFT шрифтами на моем компьютере conky корректно отображал русские буквы. 
use_xft yes
xftfont Terminus:size=8
 
Поддержка двойного буфера. Без нее conky будет неприятно мигать.
double_buffer yes

Включаем тени - для улучшения читабельности текста.
draw_shades yes
Задаем умолчальные цвета
default_color white
default_shade_color black
default_outline_color blue
 
Задаем позицию для окна. Conky будет отображаться в левом верхнем углу. Можно изменить на top_right, bottom_left, bottom_right
alignment top_left

Делаем небольшие отступы с краев gap_x 10
gap_y 10

Так указывается шрифт, если у вас отключено use_xft yes. Для определения правильного имени шрифта используйте утилиту xfontsel. Так шрифт можно указывать, если не используется use_xft. Но без use_xft не отображаются корректно русские буквы. Поэтому пока закоментим. 

## font -schumacher-clean-medium-r-*-*-12-*-*-*-*-*-*-*

Эта строчка определяет, как будет показываться свободная/используемая оперативная память. Если no_buffers no, то кол-во используемой оперативной памяти будет определяться с учетом кэшированной памяти. Если no_buffers yes, кэш будет считаться свободной памятью. Единственного правильного варианта нет. Да и вобще, утилитам которые показывают кол-во свободной/занятой памяти не стоит доверять. Это из-за тонкостей использования динамических библиотек в Linux. Если две программы используют библиотеку в 20МБ, это не означает, что каждая из программ занимает +20МБ в ОЗУ. Именно поэтому в некоторых случаях программы, которые используют "жирные" библиотеки типа QT или GTK, на деле используют оперативную память эффективнее чем остальные. Но и это не всегда верно. Также, программа может "занять" себе довольно большой объем оперативки и, с одной стороны память будет занята, но с другой - свободна. Решать вам. Скажу лишь, что с no_buffers yes, у меня никогда не "занято" больше 500МБ, а с no_buffers no - Conky показывает что "занято" постоянно около 3-4ГБ.
no_buffers no

Все, первая часть конфига окончена. Переходим ко второй.

Все, что будет идти после TEXT, будет выведено на экран. Минимальная настройка conky может выглядеть так: TEXT HELLO
TEXT

Сверху у нас будет написана версия ядра системы. "Kernel: ${kernel}" можно заменять на "Ядро: ${kernel}", как вам угодно. Информация берется из переменной $kernel. Если надо указать какие-то дополнительные параметры, имя переменной заключается в фигурные скобки. Да и без параметров обычно так делают - по-привычке, видимо :)

Kernel: ${kernel}

Дата и время

Date: ${time}

Аптайм системы

Uptime: $uptime

Информация о использовании процессора. ${color a1ccea} указывает цвет последующего текста. Весь текст, следующий после ${color a1ccea} будет синим, поэтому, после этой строчки мы его сделаем опять белым.
Если у вас многоядерный процессор, можно выводить информацию с каждого ядра таким образом ${cpu 1} - для первого ядра, #{cpu 2} - для второго и тд.

${color a1ccea}CPU usage: $cpu%

Возвращаем цвет в белый и рисуем полоску загруженности процессора высотой 3 и шириной 140 пикселей

${color ffffff}${cpubar 3,140}

Рисуем движущийся график загрузки процессора высотой 20 и шириной 140 пикселей. "000000 ffffff" означают что график будет окрашен градиентно - от белого к черному. Вы можете изменить цвета на свои или вобще убрать "000000 ffffff", тогда график будет просто белый.

${cpugraph 20,140 000000 ffffff}

Показываем три процесса, которые сильнее всего нагружают процессор. Первый окрашиваем оранжевым цветом.
Highest CPU:
${color ff9000}${top name 1} ${top cpu 1}%

Возвращаем цвет текста к белому
${color ffffff}${top name 2} ${top cpu 2}%
${top name 3} ${top cpu 3}%

Использование оперативной памяти

${color a1ccea}MEM usage: $memperc%

Пишем количество занятой памяти и общее кол-во озу

${color ffffff}Used: $mem of $memmax

Рисуем полоску использования памяти высотой 3 и шириной 140

${membar 3,140}

Рисуем график использования памяти высотой 20 и шириной 140, закрашенный градиентом

${memgraph 20,140 000000 ffffff}

Показываем три процесса, которые используют памяти больше, чем другие. Самый прожорливый окрашиваем оранжевым цветом.
Highest MEM:
${color ff9000}${top_mem name 1} ${top_mem mem 1}%
${color ffffff}${top_mem name 2} ${top_mem mem 2}%
${top_mem name 3} ${top_mem mem 3}%

Выводим информацию по использованию свопа
SWAP usage: $swapperc%
Used: $swap/$swapmax

Теперь переходим к мониторингу сетевых интерфейсов

${color a1ccea}Network usage:
Показываем исходящий трафик для интерфейса eth0. Если у вас интерфейс называется по-другому, измените eth0 на свое. Если у вас больше одного сетевого интерфейса, просто скопируйте следующие строчки и измените eth0 на свое. 


${color ffffff}
Up: ${upspeed eth0}/s

График исходящего трафика

${upspeedgraph eth0 20,140 000000 ffffff}

Входящий трафик

Down: ${downspeed eth0}/s

График для входящего трафика

${downspeedgraph eth0 20,140 000000 ffffff}
 
Информация о файловых системах.
 ${color a1ccea}File systems:
 ${color ffffff}

Сколько использовано на корневом разделе и сколько места всего

/ ${fs_used /}/${fs_size /}

Полоска для корневого раздела

${fs_bar 3,140 /}

То-же самое для /home и /files:
Home ${fs_used /home}/${fs_size /home}
${fs_bar 3,140 /home}
/files ${fs_used /files}/${fs_size /files}
${fs_bar 3,140 /files}


На мониторинге температуры остановимся подробнее.
Чтобы следить за температурой чипсета материнской платы и температурой процессора, надо установить и настроить пакет
lm_sensors. Как это делается, написано тут: Установка и настройка lm_sensors
Температуру жесткого диска можно смотреть утилитой hddtemp. Просто установите ее, никаких настроек не требуется. Единственная проблема - hddtemp использовать может только root. Но мы же не хотим каждый раз запускать conky от рута, поэтому надо разрешить запускать hddtemp от пользователя, без прав рута. В Gentoo hddtemp лежит по адресу /usr/sbin/hddtemp и, чтобы разрешить запускать ее от пользователя, надо выполнить от рута команду chmod a+s /usr/sbin/hddtemp. Если у вас в /usr/sbin/ ее нету, местоположение файла hddtemp можно узнать командой whereis hddtemp (от рута тоже). Дополнительная проблема в том, что если эта программа у вас обновится, то права надо будет изменить заново.
Температуру видеокарты, как мне известно, могут смотреть только владельцы Nvidia. Для этого, conky должен быть собран с флагом nvidia (в Gentoo). Во многих дистрибутивах он по умолчанию собирается с поддержкой nvidia.

Температура процессора. Данные берутся с lm_sensors. В моем случае за процессор в lm_sensors отвечает датчик temp1. У вас может быть по-другому.
Самый простой способ узнать, какой из датчиков за что отвечает, - записать данные с вывода lm_sensors, перезагрузиться и сравнить их с данными о температуре в BIOS

${color ffffff}CPU: ${execi 2 sensors | grep temp1 | cut -c 15-16}°С

Температура сис. платы. У меня за нее отвечает temp2. Замените temp2 на другой датчик, если у вас по-другому

SYS: ${execi 2 sensors | grep temp2 | cut -c 15-16}°С

Температура жестких дисков. Данные берутся с hddtemp. У меня устроства жестких дисков называются /dev/sda и /dev/sdb. Измените это на свое, если у вас по-другому.
/dev/SDA: ${execi 2 /usr/sbin/hddtemp /dev/sda -q | awk '{print $3; }' | cut -c 1-2}°С
/dev/SDB: ${execi 2 /usr/sbin/hddtemp /dev/sdb -q | awk '{print $3; }' | cut -c 1-2}°С

Температура видео-карты. Новые версии Conky поддерживают показ температуры с видеокарт Nvidia. Про ATI ничего не известно

Nvidia GPU: ${nvidia temp}°С
Показ погоды в conky. Я не стал заморачиваться с RSS (он у меня как-то криво работал) и использованием отдельных скриптов, а сделал просто - с помощью wget каждые 600сек (10мин) с сайта гисметео скачивается маленькая (4кб) картинка и сохраняется под именем .conkyweather.gif. Затем она отображается в окне Conky. У меня используется ссылка для Тулы. Получить ссылку для вашего города вы можете по адресу http://informer.gismeteo.ru/ в разделе "графические информеры" 
 ${color a1ccea}Weather:
${color ffffff}${execi 600 wget -O ~/.conkyweather.gif http://informer.gismeteo.ru/new/4392-13.GIF}

Картинка будет показываться по координатам 0,635 и будет обновляться раз в 300 сек.

${image ~/.conkyweather.gif -p 0,635 -f 300}

И еще кое-что. Чтобы картинка влезла в окно conky, его надо растянуть, сделав в 4-5 переносов строк


Слегка сокращенный перевод официальной документации по Conky. 
Опции конфигурации

TEXT : После этого весь текст будет отображен на экране

alignment : Определяет позицию на экране. Может быть top_left, top_right, top_middle, bottom_left, bottom_right, bottom_middle, middle_left или middle_right 
default_color : Дефолтный цвет границ и текста
default_shade_color : Дефолтный цвет теней
double_buffer : Включите это, если Conky неприятно мигает
draw_shades : Включить тени
font : Указывает, какой шрифт использовать. Для определения имени шрифта используйте утилиту xfontsel
gap_x : отступ слева или справа
gap_y : отступ сверху или снизу
use_xft : Использовать шрифты Xft. Xft поддерживают антиальясинг.
xftfont : Какой xft шрифт использовать

Переменные

color (color) : Задает цвет последующего текста. Пример: ${color ffffff}
cpu (cpuN) : Использование процессора в процентах. Пример для одноядерной машины: ${cpu} Пример для многоядерной для первого ядра: ${cpu 1}
cpubar (cpuN) (height),(width) : Полоска загрузки процессора, где cpuN - номер ядра (указывать, если машина многоядерная), height - высота, width - ширина полоски. Пример: ${cpubar 3,100}
cpugraph (cpuN) (height),(width) : График загруженности процессора, где cpuN - номер ядра (указывать, если машина многоядерная), height - высота, width - ширина полоски. Пример: ${cpugraph 20,100}

curl url interval_in_minutes: Скачивает и показывает текстовые данные с указанного url. Пример: ${curl http://mydomain.com/test.txt 2} 
downspeed (net) : Скорость скачки, где net - имя сетевого интерфейса. Пример: ${downspeed eth0}
downspeedgraph (net) : График скорости скачки, где net - имя сетевого интерфейса.
else : Логическое иначе
endif : Конец условия $if
execi interval commamd : Выполнение исполняемого файла и показ его вывода. Пример: ${execi 2 cat /home/myname/test.txt}
freq (n) : Частота процессора в МГц, где n - номер ядра (по дефолту 1)
fs_bar (height),(width) fs : Полоска, которая показывает, как используется файловая система. Пример: ${fs_bar3,100 /home}
fs_free (fs) : Кол-во свободного места файловой системы
fs_size (fs) : Размер файловой системы
fs_type (fs) : Тип файловой системы
fs_used (fs) : Количество использованного места файловой системы
if_empty (var) : Если указанная переменная пуста, показывает все, что идет после $if_empty и до $endif
if_existing file (string) : Если указанный файл существует, показывает все, что идет после $if_existing и до $endif
if_running (process) : Если указанный процесс запущен, то показывает все, что идет после $if_running и до $endif
image (-p x,y) (-f interval) : Показывает изображение. x и y - координаты, -f interval - частота обновления. Пример: ${image /path/to/image.png -p 10,100 -f 15}
kernel : Версия ядра
mem : Кол-во используемой памяти
membar (height),(width) : Полоска загруженности памяти
memfree : Кол-во свободной памяти
memgraph (height),(width) : График использоемой памяти
memmax : Общее кол-во памяти
nvidia : Для владельцев карт Nvidia. Пример для вывода температуры: ${nvidia temp}
shadecolor (color) : Цвет теней
swap : Кол-во использованного свопа
swapfree : Кол-во свободного свопа
swapmax : Общее кол-во свопа
time : Вывод времени
upspeed (net) : Скорость исходящего трафика, где net - сетевой интерфейс
upspeedgraph (net) (height),(width) : График по исходящему трафику
uptime : Аптайм




Простой конфиг Conky

# --- Window Layout & Options --- #
use_xft yes
own_window yes
own_window_transparent yes #yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_class Conky
own_window_type normal
own_window_type override
double_buffer yes
alignment top_right
use_spacer none #none
gap_x 15
gap_y 25
total_run_times 0
no_buffers yes
cpu_avg_samples 4
net_avg_samples 1
background yes

# --- Colours, Sizes, Fonts & Margins --- #
xftfont DejaVu Sans:size=8
xftalpha 1
update_interval 1.0
minimum_size 180 0
#maximum_width 200
stippled_borders 0
border_width 1
default_color white
#default_color 303030
#default_shade_color black
default_outline_color white
own_window_colour white

# --- Text --- #
draw_outline no
draw_borders no #no
uppercase no
draw_shades no
override_utf8_locale yes
text_buffer_size 2048

TEXT#Они же часы#
${voffset 3}
${color ff4848}${font OpenLogos:size=55}S${voffset -30}${color white}${font Arial Black:size=18}${offset 4}${time %H:%M}${color ff0000}${font Arial Black:size=12}${time :%S}${font}
${color fff}${font Arial Black:size=10}${offset 60}${time %A %d/%m/%Y}

${stippled_hr}#Ядро системы#
${voffset 3}${font OpenLogos:size=12}u${font} Ubuntu Lucid 10.04 - ${kernel}${font}
#Вывод процента загруженности процессора#
${voffset 3}${font StyleBats:size=15}A${font} ${voffset -4} Процессор: ${cpu cpu0}%${alignr 40}${cpubar 6, 70}
#Вывод температуры процессора#
${voffset -30}${alignr}${font Weather:size=25}y${font}${voffset -10}${color #4ea5cd}$color ${alignr 4}${acpitemp}°C
#Вывод процента использования оперативной памяти #
${voffset 13}${font StyleBats:size=15}g${font} ${voffset -4} Память: $memperc% ${alignr}${membar 6,110}
#Вывод процента использования файла подкачки#
${font StyleBats:size=15}g${font} Подкачка: $swapperc% ${alignr}${swapbar 6,110}
#${voffset 3}${font StyleBats:size=16}j${font} ${voffset -4} SWAP: $swapperc% ${alignr}${swapbar 8,60}
#Вывод кол-ва установленых за данную сессию новых пакетов#
${voffset 3}${font StyleBats:size=15}v${font} ${voffset -4} Обновления: ${alignr}${execi 600 aptitude search "~U" | wc -l | tail} Пакет(ов)
#Аптайм#
${voffset 3}${font StyleBats:size=15}q${font} ${voffset -4} Время работы: ${alignr}${uptime}
${stippled_hr}
#Данные по жестким дискам#
${voffset 3}HDD:${alignc -15}${diskiograph 10,90 e6fbde b0f482}${alignr}${font Weather:size=15}y${font}${voffset -6}${execi 300 hddtemp -n /dev/sda}°C
${voffset 3}${font Pie charts for maps:size=15}i${font} ${voffset -4} Windows: ${fs_used /media/8226D3A9B5A48EDE}/${fs_size /media/1B31130387CAABC7} ${alignr}${fs_bar 8,60 /media/1B31130387CAABC7}
${voffset 3}${font Pie charts for maps:size=15}i${font} ${voffset -4} Home: ${fs_used /}/${fs_size /} ${alignr}${fs_bar 8,60 /}
${voffset 3}${font Pie charts for maps:size=15}i${font} ${voffset -4} Media: ${fs_used /media/1B31130387CAABC7}/${fs_size /media/1B31130387CAABC7} ${alignr}${fs_bar 8,60 /media/1B31130387CAABC7}
${stippled_hr}
#Данные по использованию интернета#
${voffset 3}${font Martin Vogel's Symbols:size=15}m${font}${color white} Интернет:${alignr}${addr ppp0}
#Скорость отдачи#
${font PizzaDude Bullets:size=15}O ${font}Исход${alignr}${upspeed eth0} kb/s ${alignr}${upspeedgraph eth0 10,70 262626 FF3C00}
#Скорость загрузки#
${font PizzaDude Bullets:size=15}U ${font}Вход${alignr}${downspeed eth0} kb/s ${alignr}${downspeedgraph eth0 10,70 262626 3AE813}
#Количество отданой информации#
${font PizzaDude Bullets:size=15}N ${font}Отдано: ${alignr}${totalup eth0}
#Количество полученной информации#
${font PizzaDude Bullets:size=15}T ${font}Получено: ${alignr}${totaldown eth0}
${stippled_hr}
#Топ процессов, которые нагружают систему#
${font StyleBats:size=16}z${font} Топ 7 процессов: $alignr CPU% MEM%

${color red}${top_mem name 1}$alignr${top_mem cpu 1}${top_mem mem 1}${color}
${top_mem name 2}$alignr${top_mem cpu 2}${top_mem mem 2}
${top_mem name 3}$alignr${top_mem cpu 3}${top_mem mem 3}
${top_mem name 4}$alignr${top_mem cpu 4}${top_mem mem 4}
${top_mem name 3}$alignr${top_mem cpu 5}${top_mem mem 5}
${top_mem name 3}$alignr${top_mem cpu 6}${top_mem mem 6}
${top_mem name 3}$alignr${top_mem cpu 7}${top_mem mem 7}
${top_mem name 3}$alignr${top_mem cpu 8}${top_mem mem 8}
${stippled_hr}
#Диаграмма использования жесткого диска#
${color5}Использование HDD:
${color white}${diskiograph 25,250 5F3319 ff6600}

открываем gedit и пишем туда всю эту хрень, переносим в /home/username и обзываем .conkyrc
И как уже писалось ниже ..
nice -n 50 conky - добавляем в Запуск приложений

Комментариев нет:

Отправить комментарий