ホームフォルダーのディスク使用量を確認し、ユーザーが xxGB を超えた場合に電子メールで警告するスクリプトを作成しようとしています。
du -s * の出力を一時ファイルにダンプし、1 行ずつ読み取ります。du の出力からフォルダーのサイズと名前を読み取ろうとすると、正しく機能せず、echo $ を実行するだけです。ファイルの各行が 2 行としてダンプされます。展開してタブをスペースに置き換えようとしましたが、機能しませんでした。また、サイズに基づいて比較を行う方法もわかりません。
#!/bin/bash
#echo "Disk usage report for /homes on `hostname`"
EMAIL="helpdesk@xy.com"
##########################
# check staff
#########################
cd /homes/staff/
file1="/root/scripts/temp_check"
file2="/root/scripts/temp_check2"
du -s * | sort -rn | head -15 |awk '{print}' > $file1
expand $file1 > $file2
for line in $(cat $file2)
do
echo $line
# echo $line | awk '{ print $2 }'
mail -s "Disk usage report for your homefolder" $EMAIL
done