Наличии свободного места на диске, отчет отослать на почту
В своей теме «Наличии свободного места на диске, отчет отослать на почту» хочу рассказать как можно легко следить за дисковым пространством на сервер, а именно высылать отчет если остается 75% на почту. Сейчас, предоставлю готовый, не большой скрипт на bash.
Создаем скрипт:
# vim /home/captain/df_hdd_75.sh
И прописываем следующий код:
#!/bin/bash
used=`df -h | grep sda1 | awk {'print $5'}`
used=${used/\%/}
if [ $used -gt 75 ];
then
echo "WARNING! Available space less than 25%. Space has been used = $used"% | mail -s "DISK ALERT" my_email@mail
fi
Выставляем права на исполнение для скрипта:
# chmod +x /home/captain/df_hdd_75.sh
После чего, добавляем скрипт в крон:
$ crontab -e 00 12 * * 1-5 /home/captain/df_hdd_75.sh
Этот скрипт запуститься 1 раз в день в 12ч.
Подробную работу о кроне, можно прочитать:
PS: но лучше всего использовать какой-то мониторинг
Вот скрипт которым я пользуюсь. Он ишет максимально занятый раздел и пишет процент его занятости в тему письма, плюс в письме приходит табличка вывода команды состояния:
#!/bin/bash #порог срабатывания тревоги export POROG_ALARM=90 #максимальный процент который занимает одна из партиций диска... export DISK_USE1=$(df -h |grep -E '[0-9]{1,3}%' |awk '{ print $5}'| sed 's|%||'|sort -rn | head -1) #Адрес на который будет отослано сообщение с предупреждением. export ALERT_ADDRESS="XXXXX@yandex.ru" #Тема которая будет указана в отправляемом письме export NAME_PC=$(hostname) export ALERT_SUBJECT_A=$NAME_PC"_ALARM_Use_Disk_"$DISK_USE1"%" export SENDS_MAIL_A=$(df -h) if [ "$DISK_USE1" -ge "$POROG_ALARM" ] then df -h |mail -s $ALERT_SUBJECT_A $ALERT_ADDRESS else echo "Sostoianie Normal"$ALERT_SUBJECT_A fi