Наличии свободного места на диске, отчет отослать на почту

Наличии свободного места на диске, отчет отослать на почту

В своей теме «Наличии свободного места на диске, отчет отослать на почту» хочу рассказать как можно легко следить за дисковым пространством на сервер, а именно высылать отчет  если остается 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ч.

Подробную работу о кроне, можно прочитать:

создать cron задание

PS: но лучше всего использовать какой-то мониторинг

One thought on “Наличии свободного места на диске, отчет отослать на почту

  1. Вот скрипт которым я пользуюсь. Он ишет максимально занятый раздел и пишет процент его занятости в тему письма, плюс в письме приходит табличка вывода команды состояния:

    #!/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
    

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *