RAMディスク、x分より古いすべてのx分ファイルをクリーンアップする方法

RAMディスク、x分より古いすべてのx分ファイルをクリーンアップする方法

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

ファタイ

関連情報