10分ごとに8分より古い古いキャッシュファイルをディスクから消去するcronジョブを設定するのは簡単な作業です。
# crontab -e
*/10 * * * * root find /tmp/diskcache -type f -mmin +8 -delete 2>/dev/null
問題は、ディスクキャッシュをtmpfsに移動したいかどうかです。 tmpfsについての私の考えは次のとおりです(そうでなければ、tmpfsは基本メモリの半分を占めます)。
/etc/fstab
tmpfs /dev/diskcache tmpfs nodev,nosuid,size=2G 0 0
新しいコマンドは次のとおりです(正しいですか?)。
# crontab -e
*/10 * * * * root find /dev/diskcache -type f -mmin +8 -delete 2>/dev null
これが現在最善のアプローチですか?最も重要なことは正しいですか?ありがとうございます:)
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/ploop39151p9 41151808 634408 38420352 2% /
devtmpfs 3145728 0 3145728 0% /dev
tmpfs 3145728 0 3145728 0% /dev/shm
tmpfs 3145728 32 3145696 1% /run
tmpfs 3145728 0 3145728 0% /sys/fs/cgroup
答え1
動作します。
ただし、/ devディレクトリは通常デバイスファイルに使用されます。 /tmp を tmpfs として使用せずに "diskcache" ディレクトリのみを使用するには、/tmp/diskcache に tmpfs をマウントします。
10分ごとにcronjobを実行する代わりに、ディレクトリのファイルシステムウォッチャを設定して、ディレクトリに作成された各ファイルに対して8分間待機しているプロセスを作成し、ファイルを削除することができます。このように:
inotifywait -m -e create --format %f /tmp/diskcache | while read newfile; do ( sleep $((8*60)) && rm -f "${newfile}" )& done
ファタイ