Cron 运行命令但没有效果。如何解决?

Cron 运行命令但没有效果。如何解决?

我的 apache 服务器上有一个存储目录,我需要每 6 小时删除一次其中的所有文件和文件夹。

为了实现这一点,我在 crontab 文件中添加了下一行:

* */6   * * * root   find ~/project/storage -type f -mmin +720 -delete

我手动运行了命令-它有效。

Cron 也有效,我在日志中得到下一行:

CRON[31641]: (root) CMD (find ~/project/storage -type f -mmin +720 -delete)

但实际上,它并没有删除文件,我不明白为什么。

答案1

你期望中的“~”~/project/storage做什么?有一件事我可以向你保证,那就是它不会扩展为/home/$USER/。

解决方案:使用任何 cron 时始终使用明确的(/绝对)路径。

关于您的方法,我有一个提示:我永远不会这样做。如果我是您,我会先创建一个带有时间戳的压缩 tar 文件,然后删除这些文件并将压缩的 tar 文件存储在不同的目录中,并在宽限期(例如一周或一个月甚至一年后)后删除这些 tar 文件。我无法告诉您在过去 25 年里这种方法救了我多少次。甚至是为了解决客户询问他们采取某些行动后发生了什么的问题。

相关内容