Thank you for reading this post, don't forget to subscribe!
Метод 1: Скрипт Шелл для мониторинга использования дискового пространства и отправки электронной почты
Вы можете использовать следующий скрипт оболочки для мониторинга использования дискового пространства в системе Linux.
Он отправит электронное письмо, когда система пространство достигнет заданного порогового значения.
В этом примере мы устанавливаем пороговое ограничение в 60% в целях тестирования, и вы можете изменить это ограничение в соответствии с вашими требованиями.
Он будет отправлять несколько писем, если более чем одна файловая система достигнет заданного порогового значения, поскольку скрипт использует цикл.
Кроме того, замените свой адрес электронной почты вместо нашего, чтобы получить это предупреждение.
1 2 3 4 5 6 7 8 9 10 11 12 |
# vi /opt/script/disk-usage-alert.sh #!/bin/sh df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output; do echo $output used=$(echo $output | awk '{print $1}' | sed s/%//g) partition=$(echo $output | awk '{print $2}') if [ $used -ge 60 ]; then echo "The partition \"$partition\" on $(hostname) has used $used% at $(date)" | mail -s "Disk Space Alert: $used% Used On $(hostname)" admin@itisgood.ru fi done |
Вывод: я получил следующие два оповещения по электронной почте.
1 2 3 |
The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019 The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019 |
Наконец добавьте задание cronjob, чтобы автоматизировать его.
Оно будет запускаться каждые 10 минут.
1 2 |
# crontab -e */10 * * * * /bin/bash /opt/script/disk-usage-alert.sh |
Метод 2: Скрипт Linux для мониторинга использования дискового пространства и отправки электронной почты
Кроме того, вы можете использовать следующий скрипт оболочки.
Мы внесли несколько изменений в этот вариант по сравнению с приведенным выше скриптом.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /opt/script/disk-usage-alert-1.sh #!/bin/sh df -Ph | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5,$1 }' | while read output; do max=60% echo $output used=$(echo $output | awk '{print $1}') partition=$(echo $output | awk '{print $2}') if [ ${used%?} -ge ${max%?} ]; then echo "The partition \"$partition\" on $(hostname) has used $used at $(date)" | mail -s "Disk Space Alert: $used Used On $(hostname)" admin@itisgood.ru fi done |
Вывод: я получил следующие два оповещения по электронной почте.
1 2 3 4 |
The partition "/dev/mapper/vg_2g-lv_home" on 2g.CentOS7 has used 85% at Mon Apr 29 06:16:14 IST 2019 The partition "/dev/mapper/vg_2g-lv_root" on 2g.CentOS7 has used 67% at Mon Apr 29 06:16:14 IST 2019 |
Наконец добавьте задание cronjob, чтобы автоматизировать этот процесс.
Он будет запускаться каждые 10 минут.
1 2 |
# crontab -e */10 * * * * /bin/bash /opt/script/disk-usage-alert-1.sh |
Метод 3: Скрипт Linux шелл для мониторинга использования дискового пространства и отправки электронной почты
Я хотел бы поделиться и этим методом.
Так как он работает как charm, и вы получите одно письмо.
Это очень просто и понятно.
1 2 |
*/10 * * * * df -Ph | sed s/%//g | awk '{ if($5 > 60) print $0;}' | mail -s "Disk Space Alert On $(hostname)" admin@itisgood.ru |
Вывод: я получил одно письмо со всеми оповещениями.
1 2 3 |
Filesystem Size Used Avail Use Mounted on /dev/mapper/vg_2g-lv_root 10G 6.7G 3.4G 67 / /dev/mapper/vg_2g-lv_home 5.0G 4.3G 784M 85 /home |
Метод 4: Скрипт оболочки Linux для мониторинга использования дискового пространства определенного раздела и отправки электронной почты
Если кто-то хочет следить за конкретным разделом, вы можете использовать следующий скрипт.
Просто замените имя вашей файловой системы вместо нашей.
1 2 3 4 5 6 7 8 |
# vi /opt/script/disk-usage-alert-2.sh #!/bin/bash used=$(df -Ph | grep '/dev/mapper/vg_2g-lv_dbs' | awk {'print $5'}) max=80% if [ ${used%?} -ge ${max%?} ]; then echo "The Mount Point "/DB" on $(hostname) has used $used at $(date)" | mail -s "Disk space alert on $(hostname): $used used" admin@itisgood.ru fi |
Вывод: я получил следующие оповещения по электронной почте.
1 2 |
The partition /dev/mapper/vg_2g-lv_dbs on 2g.CentOS6 has used 82% at Mon Apr 29 06:16:14 IST 2019 |
Наконец добавьте задание cronjob, чтобы автоматизировать эту задачу.
Он будет запускаться каждые 10 минут.
1 2 |
# crontab -e */10 * * * * /bin/bash /opt/script/disk-usage-alert-2.sh |
Примечание. Через 10 минут вы получите оповещение по электронной почте, поскольку запуск скрипта запланирован каждые 10 минут (но это не совсем 10 минут, и это зависит от времени).
Скажем например , если ваша система достигнет предела в 8.25, вы получите оповещение по электронной почте через 5 минут.