-4

Я новичок в создании сценариев оболочки и хочу внедрить сценарий на моем сервере, который будет автоматически отправлять оповещения по электронной почте, если использование диска превышает 90%, и второе оповещение по электронной почте, когда оно превышает 95%. моя файловая система abc:/xyz/abc и mount это /pqr.

Пожалуйста, помогите мне со сценариями.

2 ответа2

1

Вот один из многих способов сделать это. Этот быстрый и грязный:

#!/bin/bash

errortext=""
EMAILS="address@domain.com,otheraddress@domain.com"

# get file system disk usage report for 
# all file systems (-a) 
# with POSIX output (P) 
# in human readable format (h)
# Look for only vgroup (I've LVM), but if you want only /home and /var 
# to be checked for, do something like this: egrep 'home|var'

for line in `df -aPh | egrep 'vgroup-' | sort | awk '{print$6"-"$5"-"$4}'`
do

    # get the percent and chop off the %
    percent=`echo "$line" | awk -F - '{print$2}' | cut -d % -f 1`
    partition=`echo "$line" | awk -F - '{print$1}' | cut -d % -f 1`

    # Let's set the limit to 90% when alert should be sent
    limit=90

    if [ $percent -ge $limit ]; then
        errortext="$errortext $line"
    fi
done

# send an email
if [ -n "$errortext" ]; then
    echo "$errortext" | mail -s "NOTIFICATION: some partitions on almost full"         $EMAILS
fi
0

Вот cron, который работает с понедельника по пятницу в 8 утра, который будет предупреждать, если использование превышает 90%

0 8 * * 1-5 df | tail --lines=+2 | sed s/%//g | awk '{ if($5 > 90) print $0;}'|mail -s "space alert" address@domain.com
  • 0 8 * * 1-5 приказывает crontab запустить его в 8:00 с понедельника по пятницу (1-5)
  • df | tail --lines=+2 принимает весь вывод после пропуска первых 2 строк
  • sed s/%//g' снимает знаки процента
  • awk ... если 5-е поле в выводе является числом больше 90, оно печатает эту строку
  • |mail -s "space alert" address@domain.com отправляет эту строку в тело письма на адрес address@domain.com под названием "space alert"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .