суббота, 5 января 2013 г.

Conky - программа для системного мониторинга

Conky — программа для системного мониторинга под X Window System. Она поддерживает POSIX-системы, включая GNU/Linux и FreeBSD.
Conky имеет большое количество настроек и может отслеживать многие показатели системы: CPU, память, swap, размеры дисков, температуру, скорость закачки и загрузки, системные сообщения и многое другое.
Некоторые скриншоты conky (нагло скопированы с инета):




1. Установка:
$ sudo apt-get install conky conky-all


2. Запуск:
$ conky

Видим примерно такое (стандартная конфигурация conky):
В первой строке видим версию ядра.
Затем по порядку аптайм (время работы компьютера), 
частоту процессора с MHz и Ghz, 
нагрузку процессора, 
используемую оперативную память и раздел swap, 
количество всех и запущенных процессов. 
Занятая память в разделе / , 
параметры сети (загрузка и отдача) и "топ" процессы.

Conky настраивается при помощи редактирования пользовательского конфигурационного файла ~/.conkyrc.
Если пользовательского файла нет, то используется файл конфигурации по умолчанию: /etc/conky/conky.conf. Конфигурационный файл содержит параметры настройки программы, а также инструкции для вывода и оформления информации в специальном формате. Достаточная сложность редактирования этого файла окупается гибкостью настройки.
Рекомендую вам пользоваться файлом ~/.conkyrc.

Проверим наличие файла:
$ cd ~/
$ ls -a

Ищем файл .conkyrc, если его нет, то создадим его, иначе пропускаем этот шаг:
$ cat /etc/conky/conky.conf > ~/.conkyrc

Файл создали, теперь conky, в первую очередь обратит внимание именно на файл ~/.conkyrc , а не на /etc/conky/conky.conf.

Вы можете открыть файл в любом текстовом редакторе и изучить его (gedit - стандартный текстовый редактор среды GNOME):
$ gedit ~/.conkyrc

Основные параметры настройки conky вы можете посмотреть на conky.sourceforge.net (ибо этой стоит не одной статьи).

Если вы используете arch linux, то здесь подробный мануал по установке conky на арч.

Вы можете самостоятельно изучить параметры настройки conky, а можете просто найти в интернете понравившиеся вам конфигурации и скопировать их содержимое.

При пересохранении конфигурационного файла, conky автоматически перезапускается и отображается согласно новой конфигурации.

3. Добавим в автозагрузку такую команду:
sh -c "sleep 3 && conky -d"

Теперь conky запускается автоматически при запуске системы.

Пример моего конфига conky:
background yes
use_xft yes
xftfont HandelGotD:size=8
xftalpha 0.5
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 170 5
maximum_width 190
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_color aaaaaa
default_shade_color red
default_outline_color green
#alignment top_left
gap_x 5
gap_y 5
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes

TEXT

MAIL ${hr 2}

${font StyleBats:size=16}y${font} Gmail: ${execi 300 python /home/ametumerov/.gmail.py}
SYSTEM ${hr 2}

${font StyleBats:size=16}A${font} CPU: ${cpu cpu0}% ${alignr}${cpubar cpu0 8,60}

${font StyleBats:size=16}g${font} RAM: $memperc% ${alignr}${membar 8,60}

${font StyleBats:size=16}j${font} SWAP: $swapperc% ${alignr}${swapbar 8,60}

${font StyleBats:size=16}p${font} FS: ${fs_used_perc /}% ${alignr}${fs_bar 8,60}

${font StyleBats:size=16}j${font} /home: ${fs_used_perc /home}% ${alignr}${fs_bar 8,60 /home}

${font StyleBats:size=16}q${font} Uptime: ${alignr}${uptime}

NETWORK ${hr 2}${if_existing /proc/net/route eth0}

${font StyleBats:size=16}o${font} Up: ${upspeed eth0}
${font StyleBats:size=16}z${font} Down: ${downspeed eth0}
${else}

${if_existing /proc/net/route wlan0}
${font StyleBats:size=16}o${font} Up: ${upspeed wlan0}
${font StyleBats:size=16}S${font} Down: ${downspeed wlan0}
${font StyleBats:size=16}n${font} Signal: ${wireless_link_qual wlan0}%
${else}
${font StyleBats:size=16}f${font} Network Unavailable


А выглядит он  так:

Для того чтобы выводилось уведомление о новых сообщениях в gmail, нужно создать файл .gmail.py в домашней папке с таким содержимым:
import os
import string

username="XXXXXXX" #ваш логин (без gmail.com, например ivanpetrov)
password="*******" #пароль
com="wget -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"
temp=os.popen(com)
msg=temp.read()
index=string.find(msg,"<fullcount>")
index2=string.find(msg,"</fullcount>")
fc=int(msg[index+11:index2])
if fc==0:
print "0 new"
else:
print str(fc)+" new"

В файле ~/.conkyrc, в строке:
${font StyleBats:size=16}y${font} Gmail: ${execi 300 python /home/amet13/.gmail.py}
значение 300 равно периоду проверки почты (300 секунд = 5 минут), то есть каждые 5 минут, проверяется наличие новых сообщений, этот параметр можете менять как вам угодно.

1 комментарий:

Сергей Мирченко комментирует...

Хороший скрипт, только поправить python немножко нужно. А вообще - спасибо, все просто и стильно.