Небольшой костыль для мониторинга ресурсов
Опубликовано 23.06.2008
На одном высоконагруженном сервере постоянно возникала нехватка ресурсов: то httpd расплодится и забьёт таблицу процессов, то место закончится, то память… Поэтому необходимо было мониторить несколько разных параметров. Разумеется, впоследствии тут не обошлось без Nagios’а, а в качестве срества дополнительного контроля мы сделали мелкий скриптик /usr/local/bin/hh
, в который написали несколько строчек вида:
#!/bin/sh df -h /usr/ | awk '$6~/^\/usr$/ {print $4" space available on /usr"}' ps ax | grep httpd | grep -v grep | wc -l | awk '{print $1,"httpd processes running"}'
Запуск скриптика поместили в ~/.cshrc
(дело было под FreeBSD) каждого заинтересованного пользователя, после чего, входя на сервер, админы получали необходимую информацию о состоянии системы и, если что, предпринимали действия по устранению неполадок.
Сейчас почти то же самое у меня работает на Asus EEE PC — в условиях крайне ограниченного места необходимо время от времени его мониторить, а захламлять панель (и память) апплетами очень не хочется. Поскольку я постоянно использую консоль, то посчитал логичным выводить информацию о свободном месте при каждом логине. Одна лишняя строчка при входе в шелл совсем не напрягает, а пользы от нее очень много.
echo `ps -A | grep apache | wc -l` apache processes are running
Так на один grep и один awk короче(правда это для линуксового ps)
echo «$(pgrep httpd | wc -l) httpd processes running»
Немножко короче :)