ハードディスクの空き容量を毎日確認し、1GO未満の場合にファイルを削除する方法

ハードディスクの空き容量を毎日確認し、1GO未満の場合にファイルを削除する方法

スケジュールされたタスクを作成する必要があります。毎日ハードディスクの空き容量を確認し、この条件が確認されたらファイルを削除します。利用可能な<1Go。

これは私が書いたスクリプトですが、うまくいかないようです。

var="df -h | sed -n 2p |awk '{ print $4 }' "
if[var<15];then
./bin/dss stop
rm -rf tmp/*
rm -rf caches/*
./bin/dss start
fi

まだcrontab部分を実行していません。

ベストアンサー1

df出力を解析しないことをお勧めします。

GNU coreutilsを使用している場合は、statroot以外のユーザーが使用できる利用可能なブロック数を取得できます。

stat  -f /mountpoint -c '%a'

ブロックサイズは

stat -f /mountpoint -c '%S'

そして、条件は次のように簡潔に書くことができます。

[ `stat  -f /mountpoint -c '%a'` -lt 262144 ] && do_your_stuff

(ブロックサイズを4096と仮定すると、1GBは1073741824バイト、つまり1073741824/4096です)

(質問によるとファイル)削除に関する最も安全な方法は、おそらく次のとおりです。

find /directory -type f -print0 | xargs -0 -r rm -f

または、より良い方法は次のとおりです。

find /directory -type f -delete

それを使用することはrm -f /something/*問題を要求するだけです。

おすすめ記事