ハードドライブの使用量を確認し、使用量が容量の割合に達したときに通知を送信するbashスクリプトを作成しました。
#!/bin/bash
Name=$(hostname)
current_usage=$( df -h | grep '/dev/sda5' | awk {'print $5'} )
max_usage=65%
if [ ${current_usage%?} -ge ${max_usage%?} ]; then
mailbody="Hard drive is running out of space at Virtual Machine ${Name}. Current usage: ${current_usage}."
echo ${mailbody} | mail -s "Hard Drive Usage Alert" root
fi
Ubuntu 20.04の仮想マシンで実行すると、スクリプトは正常に動作します。
ただし、Ubuntu 18.04で実行している場合は、次のメッセージが表示されます。
/etc/cron.daily/df-check:
/etc/cron.daily/df-check: line 7: [: -ge: unary operator expected
なぜこれが起こるのかご存知ですか?
ありがとうございます。