Решение опять же — изобретение велосипеда (а ля logwatch), себе — запомнить; другим — в копилку.
Итак сам скрипт :
#!/bin/bash /bin/echo -e "Дата и время отчета : " `date +%d-%m-%Y` `date +%H:%M:%S` delim="= =============== = " #текущая дата, для выборок из лог-файлов curdate=`date | cut -d " " -f2`" "`date | cut -d " " -f3` /bin/echo -e $delim "Компы не получившие адрес" $delim "\n" #Смотрим есть ли компы, которые не получили адрес - будет строка DHCPOFFER /bin/cat /var/log/dhcp3-server.log | grep -i "offer" | uniq -d | cut -d " " -f8 /bin/echo -e $delim "Лог подмены адресов АРП" $delim "\n" /bin/cat /var/log/arpwatch.log /bin/echo -e $delim "Лог биллинга" $delim "\n" iconv -f cp1251 -t utf8 /var/log/stargazer.log /bin/echo -e $delim "Свободная память" $delim "\n" /usr/bin/free /bin/echo -e $delim "Состояние системы" $delim "\n" /usr/bin/top -b -n 1 | grep "load" -A 20 /bin/echo -e $delim "Упавшие хосты(свитчи/роутеры/прочее)" $delim "\n" /bin/cat /install/pingg/log/dhost.log /bin/echo -e $delim "Ошибки в syslog" $delim "\n" /bin/cat /var/log/syslog | grep -i "error" /bin/echo -e $delim "DHCP - сервера в сети" $delim "\n" /bin/cat /install/dhcpdrop/logs/alert.log /bin/echo -e $delim "Ошибки в daemon.log" $delim "\n" /bin/cat /var/log/daemon.log | grep "$curdate" | grep -i "error" /bin/echo -e $delim "Лог аутентификаций по SSH" $delim "\n" /bin/cat /var/log/auth.log | grep "$curdate" | grep "sshd" |
Дальше — нам нужно весь этот вывод отправить нам на почту. пишем в crontab всего 2 строчки:
30 */4 * * * root /install/minform/minform > /install/minform/minform.txt 35 */4 * * * root /bin/cat /install/minform/minform.txt | /usr/bin/mutt -s "Отчет системы за `date`" mail@mail.com |
Вот собственно и весь скрипт.
Вопрос — а почему не воспользоваться уже готовым решением (logwatch) и изобретать велосипед ?
Ответ : есть свободное время, желание и собственные файлы вывода и формат вывода. Каждые 4 часа можно смотреть не сломалось ли там чего, пока мы отдыхаем на море :)
Your enticle helped me a lot, is there any more related content? Thanks!