私はそれを実行するスクリプトを書きました - あなたがそれに満足していることをもう一度確認してください、私はそれを実行しなかったので、特にrm -rコマンド。 (このコマンドは、サブフォルダを含む、指定されたフォルダ内のすべてのものを削除します。
#! /bin/bash
FOLDER=/folder/to/delete
MAXSIZEINGIGS=10
#### No User Serviceable Parts below this line ###
MAXSIZE=$(( $MAXSIZEINGIGS * 1024 * 1024 ))
FOLDERSIZE=`du -ks $FOLDER | cut -f1`
if [ $FOLDERSIZE -gt $MAXSIZE ]
then
rm -r $FOLDER/*
fi
上記のスクリプトでファイルを作成し、それを実行可能にし(chmod 755 filename)、以下のような行でそれをcrontabに追加します。
02 02 * * * ownername /path/to/file
(これは毎朝02:02 amに実行され、あなたがそれを/ etc / crontabに追加したと仮定します。もしあなたがそれをユーザーのcrontabに追加したなら、 "ownername"ビットを省略してください。
とは言っても、これが物事を進める上で良い方法なのだろうか。まったく異なるアプローチとしては、指定された年齢より古いすべてのファイルを定期的に単純に削除することが考えられます。これは、crontabの1ライナーを使用して行うことができます。
02 04 * * * username find /data/spam -ctime +15 -exec rm {} +
/ data / spamで14日以上経過したすべてのファイルを探して削除します