我的 crontab 中有此行用于删除旧文件:
1 * * * * find /var/log/abc/ -mtime +7 -type f -delete
不幸的是,它不起作用。
我尝试授予所有用户使用以下方法清除该文件夹的权限
chmod +777 /var/log/abc
但 chmod 不起作用。我还能尝试什么?
按照建议记录输出后,我发现日志中的内容如下:
/bin/sh: 1: find: not found
所以我认为我需要正确设置我的路径......
答案1
作为一种良好做法,添加将要执行此 crontab 的用户。
1 * * * * root find /var/log/abc/ -mtime +7 -type f -delete
您是否证明了 find 在 cron 之外正常工作?
尝试手动执行它并看看会发生什么,cron 没有任何问题。
作为第二个好的做法,尝试将 cron 的操作记录到 syslog 中,例如使用 logger:
1 * * * * root find /var/log/abc/ -mtime +7 -type f -delete 2>&1 | logger -t cron_find_delete
这
2>&1
最后将把 sterr 和 stdout 抛给记录器。