私のスクリプトは次のとおりです
abc=$(df -h | sed s/%//g | awk '{ if($5 > 80) print "Alert "$0;}' | awk '{print $2,$6}') \
&& echo -e "Dear All, \n\n$abc\n\nABC" \
| mailx -s "Disk partition" [email protected]
条件が満たされない場合は、電子メールで次の出力を受け取ります。
Filesystem Use
ただし、ディスク使用量が80%を超える場合にのみメールが必要です。
答え1
このようなことを処理するには、a)マルチライナーを使用し、b)「nagios」とcoを確認することをお勧めします。初めて試すには、次のスクリプトを確認してください。
#!/bin/bash
function chk () {
# declare as integer to be used in arithmetic expressions
declare -i usage
echo "checking mount $1. has $2 percent"
usage=$2
if [[ ${usage} -gt 80 ]] ; then
echo "alert for partition $1"
#echo -e "Dear ..." | mailx -s "Disk partition ..."
fi
}
df -h | grep -v "none" | tail -n +2 | sed s/%//g | while read a b c d e f;
do chk $a $e;
完璧