Наверное, все встречались, когда на том или ином разделе жесткого диска места уже нет. А
иногда и просто забываешь проконтролировать место на диске.
Данный скрипт написан по принципу настроил и забыл.#!/bin/sh
address="root@localhost";
cicl="2 3 4 5 6";
# выставляем в процентах порог заполненного места для каждого раздела,
# при котором отсылается сообщение
predel[2]=80; # /
predel[3]=80; # /usr
predel[4]=60; # /var
predel[5]=80; # /tmp
predel[6]=80; # /home
varning="0";
count=0;
df -h > /tmp/tmp_df;
while read -r FS S Ud A U MO; do
let count+=1;
FileSystem[$count]=$FS;
Size[$count]=$S;
Used[$count]=$Ud;
Avail[$count]=$A;
Use[$count]=$U;
MountedOn[$count]=$MO;
NUse[$count]=${Use[$count]%"%"};
done < /tmp/tmp_df;
table="";
for c in $cicl; do
if [[ ${NUse[$c]} -ge ${predel[c]} ]]; then
varning="1";
table=$table"\n${FileSystem[$c]} \t${Size[$c]} \t${Used[$c]} \t${Avail[$c]} \t${Use[$c]} \t${MountedOn[$c]}";
fi
done
shapka="\nFileSystem \tSize \tUsed \tAvail \tUse \tMounted On";
body="Regard admin, please check, place on disk:"$shapka$table;
#echo -e $body;
if [ $varning -eq "1" ];
then
echo -e $body | mail -s"Warning on server" $address;
logger -i -p cron.warn -t dfmonitor "Send warning to $address";
else
logger -i -p cron.info -t dfmonitor " Place on disk in rate";
fi
P.S. записать в cron строчку:
20 5 * * * /sbin/dfmonitor,
с утра приходим и получаем отчет :-)
URL:
Обсуждается: https://www.opennet.ru/tips/info/1405.shtml