Системный монитор Conky
   Человек в ходе своей повседневной деятельности усваивает большое количество информации, и эта информация довольно многообразна по содержанию. Информация дает нам знания об окружающем мире, и, благодаря этому, мы можем принимать решения, выстраивать и намечать себе цели, вести прогноз и т.д.
   Правильным будет сказать, что человек, владеющий информацией, владеет ситуацией. Кому как ни администратору в первую очередь необходимо наличие информации для своевременного вмешательства в работу системы или ее сопровождения на примере локальной сети в связке с сервером.
Благодаря статьям Lord_of_fear, многие из нас наглядно увидели все плюсы системы Debian (если нет, то советую перечитать статьи по «Админингу» - прим. автора) и убедились насколько хорошо иметь сервер с данной системой. Одно дело - затрачиваемое время на установку и настройку системы, но совсем другое – это повседневный контроль над ее работой, включая аппаратную и техническую часть.
Я не зря начал тему об администрировании сервера, потому как сам неоднократно сталкивался с ситуацией обслуживания локальных сетей. Чтобы грамотно обслуживать систему, администратор должен владеть информацией о состоянии рабочих станций и соответственно самого сервера. Наличие ее дает возможность своевременного обслуживания, производить настройку, когда это необходимо, а также выполнять другие сервисные операции. Присутствие вспомогательных (сервисных) программ можно отнести к важным моментам администрирования сетей.
Conky - это свободный, легкий системный монитор для X, который позволит отображать
различную информацию на вашем рабочем столе. Это может быть все что угодно, начиная наличием свободного места на логических дисках и заканчивая скоростью передачи данных через каналы связи, будь то Интернет или локальная сеть. Кроме того ты можешь на свое усмотрение изменить вид выводимой информации, т.е. использовать определенное положение, задавать цвета, применять наклоны и обрамления текста, использовать графики, например, загрузка CPU и т.д.
Для данного монитора отсутствует GUI-интерфейс, и все его настройки сосредоточены в одном конфигурационном файле, который делится на две части: первый содержит параметры вывода (информационного окна) информации, а вторая часть отвечает за его оформление. Заранее оговорюсь, что я не стану приводить все команды, которые Conky позволяет использовать, но ссылки на официальную документацию ты сможешь посмотреть в конце этой статьи.
Установка данного монитора не представляет ничего сложного для человека более или менее знакомого с системой Linux. Единственное, могут возникнуть затруднения по запуску программы, но об этом читай в конце этой статьи. Установка через терминал:
sudo apt-get install conky
Запускай текстовый редактор и сохраняй его в домашней директории под именем «.conkyrc». Содержание конфигуратора, а именно первой ее части таково:
#Conky configuration #сглаживание шрифтов use_xft yes #используемый шрифт и кегль xftfont Monospace:size=10 #степень прозрачности окна (от 0 до 1) xftalpha 0.9 #вывод информации в консоль out_to_console no #время обновления данных (2 сек.) update_interval 2 #обновления Conky до закрытия (все время) total_run_times 0 #Работа Conky будет происходить в оконном режиме own_window yes #тип окна (обычное окно) own_window_type normal #прозрачность окна вывода own_window_transparent yes #дополнительные эффекты own_window_hints undecorated, below, sticky, skip_taskbar, skip_pager #двойная буферизация включена double_buffer yes #прорисовка тени под текстом draw_shades no #прорисовка контура вокруг текста draw_outline no #отрисовка границы вокруг текста draw_borders no #отрисовка границы вокруг графика или диаграммы draw_graph_borders yes #рамка вокруг Conky stippled_borders 5 #толщина границы окна в пикселях border_width 1 #цвета по умолчанию default_color grey #цвет тени параметра draw_shades default_shade_color black #цвет линий параметра draw_outline default_outline_color black #задает размещение на дисплее (верхний правый) alignment top_right #корректирует местоположение на мониторе по оси X gap_x 10 #корректирует местоположение на мониторе по оси Y gap_y 10 #буфер используемой памяти (файловая система) no_buffers no #вывод текста в верхнем регистре uppercase no #количество образцов для мониторинга ЦП cpu_avg_samples 2 #количество образцов для мониторинга сети net_avg_samples 2 #использование кодировки utf8 override_utf8_locale yes
Содержание второй части конфигуратора, представляет наибольший интерес, т.к. именно здесь нам необходимо будет задать оформление выводимой информации, и собственно указать какие именно данные будем выводить. Хочу тебя заверить, что ничего сложного нет, как это может показаться на первый взгляд. Вторая часть начинается с тега «TEXT» - это необходимо помнить. Шаблон записи выглядит следующим образом:
${переменная параметр} $элемент оформления ${color цвет текста} ${переменная параметр}Теперь дам некоторые пояснения по этому поводу: ${переменная параметр} – в большинстве случаев используют переменную оформитель, т.е. «color», после чего следует параметр, в нашем случае это - имя цвета. Например: ${color white} – задаем цвет текста, идущего после этой конструкции. Хочу заметить, если переменная $color не имеет параметра, то будет использоваться цвет заданный по-умолчанию (default_color). $элемент оформления - используется выравнивание слова. Например: $alignc – по левому краю. Не забывай, что мы можем написать поясняющий текст, перед тем как вывести необходимую нам информацию. Например: «Жесткий диск С:» или «CPU1» и т.д., в зависимости от того, данные какого устройства ты собираешься выводить. И последним завершающим элементом послужит конструкция ${переменная параметр}, которая отвечает за вывод данных. Не обязательно все выполнять так, как я описал. Главное, чтобы тег оформления был впереди выводимого значения. Чуть ниже образец моего представления второй части конфигурационного файла:
TEXT ${color white}$alignc$sysname $kernel on $machine ${color white}$alignc${exec whoami} @ $nodename $color$stippled_hr ${color}Дата: ${color white}${time %A,%d %B} ${color}Время:${color white}${time %k:%M:%S}${alignr} ${color}Время работы: ${color white}$uptime $color$stippled_hr ${alignc}Температура $color$stippled_hr ${color}CPU1: ${color white} ${cpu cpu1}% ${cpubar cpu1} ${color}CPU2: ${color white} ${cpu cpu2}% ${cpubar cpu2} ${color}RAM: ${color white} $memperc% $mem/$memmax $membar ${color}Swap: ${color white} $swapperc% $swap/$swapmax ${swapbar} $color$stippled_hr ${alignc}Файловая система $color$stippled_hr ${color}System: ${color white}${fs_used_perc /}% ${fs_used /}/${fs_size /} ${fs_bar /} ${color}Disk: ${color white}${fs_used_perc /media/disk}% ${fs_used /media/disk}/${fs_size /media/disk} ${fs_bar /media/disk}
Данный конфигуратор делит выводимые данные на условные четыре блока, это происходит благодаря использованию переменных: $stippled_hr (пунктирная линия, цвет которой задан параметром default_color). Все это сделано для удобства восприятия информации, например, «раздел» Файловая система отображает информацию о жестких дисках, «раздел» Температура – уровень загрузки ядер процессора, оперативной памяти и файла подкачки, в двух других я вывожу дату, время и время работы сессии, а также версию ядра, тип процессора и имя учетной записи.
После осуществления сохранения файла, опробуем системный монитор в деле. Для этого нужно запустить его, через терминал:
conky
Я уверен, что тебе захочется, чтобы Conky автоматически начинал свою работу, поэтому его всего на всего нужно будет указать на вызов при старте системы: «Система - Параметры - Запускаемые приложения». Кроме того, если тебе не хочется убивать свое время на настройку конфигурационного файла, в сети Интернет есть огромная сборка готовых экземпляров: от самых простых до столь сложных и экстравагантных, что поражают воображение.

Приведенный мной конфигуратор содержит минимум возможностей, но при большом желании ты сам сможешь повысить его функциональность, просто добавив нужные тебе переменные. Если кто-то подумал, что это - все, то спешу огорчить, т.к. возможности Conky огромны, и это подтверждает тот факт, что существует поддержка популярного и мощного скриптового языка программирования, носящего имя Lua. Я не буду описывать возможности этого языка и тем более погружаться в глубины его синтаксиса, но приведу пример его использования. На официальной wiki-странице проекта я отыскал совет по совместному использованию Conky и Lua, который позволяет «прослушивать» определенные порты (диапазон), выводя количество их использования на диаграмму. Создадим файл «portmon_graph.lua», сохранив его в домашней директории. Содержание скрипта должно быть таким:
do local function portmon_count(pstart, pend) return tonumber(conky_parse('${tcp_portmon ' .. pstart .. ' ' .. pend .. ' count}')) end -- возвращает количество портов для BitTorrent -- (при условии, что диапазон 6881-6999) function conky_portmon_bittorrent_count() local port_start, port_end = '6881', '6999' -- начальный и конечный порт return portmon_count(port_start, port_end) end end
Вернемся к нашему конфигуратору. Первым делом нужно прописать переменные позволяющие использовать заготовленный ранее скрипт. В первой части конфигуратора (перед тегом TEXT) следует указать загружаемый скрипт:
lua_load portmon_graph.lua
Не забываем во второй части конфигуратора указать переменные, иначе толку от нашего скрипта не будет. Теперь, чтобы, наконец, начать вывод необходимых данных, добавим строчку:
${lua_graph portmon_bittorrent_count}Перезапусти Conky, но если он у тебя уже работает. При сохранении конфигуратора перезагружается самостоятельно. В случае возникновения ошибок Conky не запустится, при этом он постоянно будет выводить ошибку в терминал (в том случае если он открыт). Самые «ненасытные» могут выжать из Conky гораздо больше, нежели просто довольствоваться простым выводом информации. Как я уже говорил, функциональность Conky огромна, но если тебе стандартных возможностей оказалось мало, то можно воспользоваться библиотекой векторной графики Cairo. В этом случае твои дизайнерские и креативные идеи реализуются с лихвой. Возможно, в следующем выпуске журнала я затрону тему использования Conky в паре с Cairo, но это зависит от наличия у меня свободного времени, и от того насколько необходимо это будет тебе. =)

На этом я хочу закруглиться, и, напоследок, напомню, что сообщество vr-online всегда открыто для твоих вопросов и предложений. Если тебе есть чем поделиться с нами, то смело присылай свои идеи на адрес наших редакторов или на наш форум.
Дополнительные ссылки:
Официальная страница проекта Conky: http://conky.sourceforge.net/
Официальная документация: http://conky.sourceforge.net/documentation.html
Wiki-страница Conky на Ubuntu.ru: http://help.ubuntu.ru/wiki/conky
Значения параметров 1 части (анг.): http://conky.sourceforge.net/config_settings.html
Значения параметров 2 части (анг.): http://conky.sourceforge.net/variables.html
Официальная Wiki-страница: http://wiki.conky.be/index.php/Main_Page
Cairo: http://cairographics.org/
Lua: http://www.lua.org/
Written by: Jimmy Jonezz
Email:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2156 просмотров


