Статистика сервера на email скрипт bash

Версия для печатиВерсия для печати

Требуется получить на e-mail статистику сервера:

- дату и время выполнения скрипта
- текущий ip-адрес сервера
- записать текущий ip-адрес сервера в лог
- получить состояние, температуру и процент заряда батареи сервера
- информацию о вошедших на сервер пользователях

Пользователь, от имени которого отправляется почта и собирается информация входит в группы ssmtp, cron и users

Пакеты на сервере

sys-power/acpitool и mail-mta/ssmtp, последний собран с флагами ipv6 mta ssl -gnutls

Работа выполняется в Linux Gentoo

Конфигурация файла /etc/ssmtp/ssmtp.conf

root=email0@email0.com # адрес root
mailhub=smtp.gmail.com:587
AuthUser=pupkin@gmail.com # адрес пользователя
AuthPass=passwordpupkina #пароль пользователя
UseSTARTTLS=YES
hostname=imya_svoego_hosta # имя хоста

Создаем файл в директории /home/name_user/.script/0day следующего содержания

#!/bin/sh
if ! [ -a /tmp/0day ] ; then #если файл /tmp/0day не существует, создать его
/bin/touch /tmp/0day
fi
if [ -a /tmp/0day ] ; then # если файл /tmp/0day существует, то
/bin/cat /dev/null > /tmp/0day #опустошить файл
/bin/date -R >> /home/name_user/.script/myip.log #записать текущую дату и время в соответствии
с RFC-2822, в конец файла /home/name_user/.script/myip.log (файл должен существовать)
/usr/bin/wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.>> /home/name_user/.script/myip.log
#получить текущий ip-адрес компьютера и записать его в конец файла /home/name_user/.script/myip.log
/usr/bin/tail -2 /home/name_user/.script/myip.log >> /tmp/0day # отправить две последние строки из
файла /home/name_user/.script/myip.log в файл /tmp/0day (эти две строки дата и ip-адрес)
/usr/bin/acpi -iV >> /tmp/0day # записать детальную статистику от всех батарей в конец файла /tmp/0day
/usr/bin/who >> /tmp/0day # записать в конец файла /tmp/0day сведения о находящихся в
системе пользователях
/usr/bin/mail -s "statistic hi-jacker" master@spo23.ru файла /tmp/0day на e-mail пользователя с темой "statistic hi-jacker"
fi

Сохраняем файл, делаем его исполняемым

chmod 700 /home/name_user/.script/0day

В crontab запускаем задание в 7 утра и 21 час вечера каждый день

0 7,21 * * * /home/name_user/.script/0day

При выполнении скрипта на почту приходит письмо примерно такого содержания

13 01:02:16 MSK 2012
95.153.184.234 #текущий ip-адрес
Battery 0: Unknown, 91% #заряд батареи
Battery 0: design capacity 4400 mAh, last full capacity 4637 mAh = 100%
Adapter 0: on-line #сервер питается от сети
Thermal 0: ok, 55.5 degrees C # температура батареи в градусах
Thermal 0: trip point 0 switches to mode critical at temperature 105.0 degrees C #критическая
температура для батареи
Cooling 0: Processor 0 of 10 #данные от кулера не поступают
pupkin pts/3 2012-12-12 23:24 (lord:S.0) #в системе находится один пользователь с удаленного компьютера

Директория /home/name_user/.script/ произвольная, имя файла скрипта тоже.

Скачать готовый скрипт