Conky в Ubuntu

Ubuntu

Теги: , ,

Conky — удобная утилита мониторинга системы для Linux. Она работает во всех Unix подобных операционных системах, очень популярна и просто незаменима для тех, кто хочет знать, что происходит в его компьютером в реальном времени.

С помощью Конки(произносится это так и переводится как носатый) можно легко просмотреть в оперативном режиме

  • загрузку процессора (CPU)
  • загрузку оперативной памяти
  • загрузку swap раздела
  • состояние процессов
  • состояние(свободное место) жёстких дисков и разделов
  • температуру процессора и других датчиков
  • состояние батареи
  • состояние сети
  • скорость итернета download/upload (аналог DU Meter)
  • трафик за день
  • и многое другой, включая результаты выполнения собственных скриптов

Всё это данные можно выводить на рабочий стол в удобном и легко настраиваемом виде, допустим у меня это выглядит так (это небольшое окно в верхнем правом углу рабочего стола):

Моё окно Conky

Установка conky в Ubuntu

Ставится это всё командой

sudo apt-get install conky

После установки конки готов к работе наберите в консоли команду

conky

и на экране появится окно conky со стандартными настройками, сначала это всё выглядит довольно убого, но потом можно будет с лёгкостью всё настроить.

Чтобы закрыть окно conky выполните команду

killall conky

Чтобы не вводить всё эти создадим скрипт запуска и остановки допустим у меня это ~/.conky/stop-start.sh со следующим содержанием

#!/bin/sh 
 
if pidof conky | grep [0-9] > /dev/null
then
exec killall conky
else
exec conky
fi

сделаем этот файл исполняемым

chmod +x ~/.conky/stop-start.sh

И сделаем так, чтобы этот скрипт выполняться по нажатию клавиши (в моём случае F2), через CompizConfig.

Заходим в настройки CompizConfig (Система->Параметры ->Менеджер настройки CompizConfig) и в разделе «Общее» нажмите на «Команды».

Запуск Conky по нажатию клавиши1

Появится окно с командами, в поле Command line 0 (Команда 0) вводим путь до нашего скрипта в моём случае «~/.conky/stop-start.sh». Переходим на закладку «Комбинации клавиш», жмём на кнопку напротив Run command 0 (Выполнять команду 0), в появившемся окне ставим галочку «Включено», тепрь жмём «Считать комбинацию клавиш» и жмём допустим F2. Теперь при нажатии на F2 будет появляться и закрываться окно Conky.

Запуск Conky по нажатию клавиши2

Настройка Conky

Конфигурационный файл конки может находится либо в /etc/conky/conky.conf либо в домашней директории в файле .conkyrc (~/.conkyrc). Файл ~/.conkyrc как бы главнее, т.е. Сначала проверяется наличия этого файла и только если его нет конфиг берётся из /etc/conky/conky.conf

Про саму конфигурацию много где написано, поэтому я просто приведу свой конфигурационный файл с подробными комментариями.

#Настройки вид окна и др. 
own_window yes #Открывать в собственном окне 
own_window_type override #Тип окна 
own_window_transparent yes #Прозрачое ли окно 
alignment top_right #Размещать в правом верхнем углу 
gap_x 5 #отступить 5 пикселей от правого угла 
gap_y 33 #и 33 пикселя вниз 
update_interval 1.0 #обновлять каждую секнду 
maximum_width 250 #максимальная ширина 250 пикселей 
override_utf8_locale yes #использовать utf8 кодировку 
font Bitstream Vera Sans Mono-7 #Шрифт и его размер по умолчанию 
use_xft yes #Сглаживание шрифтов 
double_buffer yes #какойто двойной буфер 
 
 
TEXT #После слова TEXT идет всё что выводится на экран 
${image ~/.conky/conky_front.png -p -1,0 -s 300x700}
#фон окна, у меня в качестве фона используется прозрачный png файл 
${color #ffcb48}$nodename$color ${color #828282}Uptime: $uptime
#Выводится имя компютера, потом слово "Uptime:" в аптайм (время работы компа) 
${color #ffcb48}-------------------------------------------
# просто линия из знаков тере #ffcb48 — цвет линии 
 
${color #ffcb48}PROCESSING
# Надписть "PROCESSING" 
${color #98c2c7}CPU:$color ${execi 5 cpuspeed}MHz $cpu%
#Слово "CPU" и загруженность процессора 
${color #78af78}$cpubar
#Cpubar загрзки процессора 
${color #78af78}${cpugraph 78af78 a3a3a3}
# График загрузки процессора 
 
${color #98c2c7}NAME PID CPU% MEM%
${color #e5e5e5}${top name 1}${top pid 1} ${top cpu 1} ${top mem 1}
${color #c4c4c4}${top name 2}${top pid 2} ${top cpu 2} ${top mem 2}
${color #a3a3a3}${top name 3}${top pid 3} ${top cpu 3} ${top mem 3}
${color #828282}${top name 4}${top pid 4} ${top cpu 4} ${top mem 4}
#4 самых прожорлевых процесса 
 
${color #98c2c7}/:$color ${fs_free_perc /}% $fs_free ${color #78af78}${fs_bar 6}
#свободное место в файловой системе 
${color #ffcb48}------------------------------------------
# просто линия из знаков тере #ffcb48 — цвет линии 
 
${color #ffcb48}NETWORK$color ${addr eth0}
#Надпись "NETWORK" и ip компьютера 
 
${color #98c2c7}Download:$color${downspeed eth0} ${color #98c2c7}Upload:$color${upspeed eth0}
#Скорость звкачки и загрузки 
${color #78af78}${downspeedgraph eth0 35,120 000000 00ff00} ${alignr}${upspeedgraph eth0 35,120 000000 ff0000}
#Графики скорости Download и Upload 
${color #98c2c7}Download:$color${totaldown eth0} ${color #98c2c7}Upload:$color ${totalup eth0}
#Трафик за ссесию 
${color #ffcb48}------------------------------------------
# просто линия из знаков тере #ffcb48 — цвет линии 
 
${color #ffcb48} PING
#Надпись "PING" 
$color${execi 100 ~/.conky/conky-ping-test.pl 448dmg.ru}
$color${execi 100 ~/.conky/conky-ping-test.pl 449dmg.ru}
#Результаты выполнения моих скриптов, об этом позже

Наверное, мой конфиг не очень информативный, потому что почти все настройки берутся по умолчанию. На самом деле там очень много разных параметров, все они описаны по-английски здесь http://conky.sourceforge.net/config_settings.html, а здесь описание самых важных переведено на русский http://help.ubuntu.ru/wiki/conky. Так же много разных примеров конфигов можно найти на сайте http://gnome-look.org, введя в поиск по сайту запрос conky.

Добавление своего скрипта в conky.

Одним из главных преимуществ конки, это то что в него можно выводить результаты выполнения своих скриптов. Для этих целей там есть удобный инструмент.

Допустим у нас есть перл скрипт, который пингует адрес который передаётся скрипту параметром и выводит Print’ом строчку «host $test_host OnLine\n» если сайт доступен или “host $test_host OffLine\n” нет. Целисообразность и павильность такой проверки здесь не обсуждается, так как это просто пример. Вот текст такого скрипта.

#!/usr/bin/perl
 
$test_host=$ARGV[0];
$retval = `ping -c 1 $test_host`;
$_=$retval;
if(index($_, ' 0% packet loss') != -1)
{
$ansv = "host $test_host OnLine\n";
}
else
{
$ansv = "host $test_host OffLine\n";
}
print $ansv;

Сохраним этот скрипт в файл ~/.conky/conky-ping-test.pl и сделаем исполняемым

chmod +x ~/.conky/stop-start.sh

Теперь просто в наш конфигурационный файл конку добавим строчки

${color #ffcb48} PING
$color${execi 100 ~/.conky/conky-ping-test.pl 448dmg.ru}
$color${execi 100 ~/.conky/conky-ping-test.pl 449dmg.ru}

Результатом чего будет эта часть моего окна конки

Вывод скрипта пингующего сайт в Conky

Всё делает команда ${execi где 100 это период выполнения скрипта (т. е. Скрипт будет выполняться каждые 100 секунд и выводить новые данные) а ~/.conky/conky-ping-test.pl 448dmg.ru — путь в скрипту с параметром. Если этот пример кому-то покажется безполезным, то приведу ещё один пример подсмотренный мною на уже упомянутом http://gnome-look.org.

Вот скрипт который смотрит все включённые компьютеры в вашей подсети.

#!/usr/bin/perl
################
######## NMAP SCRIPT
##author: iltiscat
#mail: schmiddim@gmx.at
#web: http://schmiddi.co.cc
#date: 02.10.09
#desc: a small script for conky lists all ip's in your subnet. 
#use: write ${execi 100 ~/.conky/nmap.pl wlan0} in your ~/.conkyrc
# 100 means the refresh intervall in seconds. 
# you can assign a interface with the argument. Without,
# the subnet of eth0 will be analyzed. HF:)
 
$adapter= @ARGV[0];
if (@ARGV[0] eq""){
$adapter ="eth0";
}#fi
 
#get my ip
$string = `ifconfig $adapter`;
$string =~m/([0-9]+\.){3}[0-9]+/g;
$myip=$&;
 
#connected?
$status= system ("ping -c 1 $myip -t 2 >/dev/null");
if ($status != 0) {
print "not connected to a network :-(\n";
exit (-1); #no network connection
}
 
 
#get the subnet
$str= $myip;
 
while($myip =~ m/\w\.\b/g) {$lastpos= pos($myip), " " };
$subnet = substr($myip,0, $lastpos-1);
$subnet= "$subnet.1-255\n";
 
#parse the nmap result
$retval = `nmap -sP $subnet`;
$ctr=0;
$_=$retval;
while (/([0-9]+\.){3}[0-9]+/g) {
if ($ctr%2 == 0) {
print "$&\t";
}else{
print "$&\n";
}#fi
$ctr++;
}
 
if ($ctr%2 ==0) {
print "";
}else{
print"\n";
}
print "$ctr hosts up\n";

Так же создаём это скрипт в ~/.conky/conky-nmap.pl и дописываем строчку в конфиг.

${color #ffcb48} NMAP
$color${execi 100 ~/.conky/conky-nmap.pl}

Для работы скрипта должен быть установлен nmap

sudo apt-get install nmap

Скрипт будет каждые 100 секунд сканировать Вашу подсеть и выводить информацию во так.

Вывод скрипта пингующего полсеть в Conky

Конечно, эти скрипты сильно затормаживают появление окна conky но никак не влияют на его работу. Некоторые ещё любят «прикручивают» к Conky и почтовые ящики и погоду и музыкальные проигрыватели и ещё много чего другого. В общем, сам процесс настройки и «подпилки» очень простой и увлекательный.

Похожие посты.

  1. Установка phpSysInfo в Ubuntu
  2. Установка и настройка VnStat под Ubuntu.
  3. Установка и настройка Munin под Ubuntu.
  4. Установка и настройка AWstats на Ubuntu.