ramdisk,如何清理早于 X 分钟的每个 x 分钟文件

ramdisk,如何清理早于 X 分钟的每个 x 分钟文件

要设置一个 cron 作业来清除磁盘上每 10 分钟超过 8 分钟的过时缓存文件,这是一项简单的任务。

# 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。

每十分钟执行一次 cronjob 的替代方案可能是为该目录设置一个文件系统观察程序,为该目录中创建的每个文件生成一个进程,该进程会休眠 8 分钟,然后删除该文件。就像这样:

inotifywait -m -e create --format %f /tmp/diskcache | while read newfile; do ( sleep $((8*60)) && rm -f "${newfile}" )& done

华泰

相关内容