每分钟删除 5 分钟前的旧文件?

每分钟删除 5 分钟前的旧文件?

我有一个目录,里面装满了来自网络服务的图片,这些图片在放置后只需在我的服务器上存在 5 分钟。我尝试使用,tmpreaper但无法让它工作。我执行了以下命令:

sudo crontab -e

* * * * * tmpreaper 5m /my_image/dir

我检查了正在cron运行pgrep cron,并得到了一个PID。但是,图像仍然在目录中。手动运行命令完全没问题,但是它无法通过 cron 运行。

答案1

根据我的经验,cron 不喜欢其文件中的原始命令。编写一个简单的 bash 脚本,如下所示:

#!/bin/bash
tmpreaper 5m /my_image/dir

将脚本保存在某个可靠的地方,使其可执行,然后将您的 cron 更改为bash /path/to/script

我也遇到过 cron 权限问题。请确保它由您期望的正确用户运行。

答案2

* * * * *  find /yourDir/ -type f -mmin +5  -exec rm -f {} +

命令将在每分钟运行一次,并删除目录中超过 5 分钟的文件。资源:https://crontab.guru/every-1-minute

相关内容