Linux CentOS:使用cron删除X天以前的文件

Linux CentOS:使用cron删除X天以前的文件,linux,cron,find,Linux,Cron,Find,我想使用cronjob删除x天以前的.tar和.sql文件 我尝试了多个命令,但都不起作用 命令,例如 find /path/to/files -type f -mtime +10 -delete find /path/to/folder -name '*.sql' -mtime +30 -delete find "$FILEDIR" -mtime +14 -delete [[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtim

我想使用cronjob删除x天以前的.tar和.sql文件

我尝试了多个命令,但都不起作用

命令,例如

find /path/to/files -type f -mtime +10 -delete
find /path/to/folder -name '*.sql' -mtime +30 -delete
find "$FILEDIR" -mtime +14 -delete
[[ $FILEDIR == /home/abc/* ]] && find "$FILEDIR" -mtime +14 -delete
上述命令运行良好,但不会删除任何内容。
需要帮助。

我使用for循环和echo语句进行调试,并确保不会错误删除任何内容

所以试试这个:

for filename in `find /path/to/files -type f -mtime +10`; do echo "rm $filename"; done
这将列出它的计划。检查它,确保它看起来不错,然后通过删除echo语句来运行

for filename in `find /path/to/files -type f -mtime +10`; do rm $filename; done
如果它不起作用,那么您可以将上述内容输出到一个文件中,并将其作为脚本运行

for filename in `find /path/to/files -type f -mtime +10`; do echo "rm $filename"; done > myremove.sh
然后运行它

sh -x ./myremove.sh 
并检查上面的输出是否有错误


一旦没有bug,您就可以通过单个命令或脚本将其添加到cron中

第一个命令应该可以工作:find/path/to/files-type f-mtime+10-delete,如果不能,对于正在执行cron的用户,您是否确实具有对文件的写访问权限以及对所讨论文件的所有父目录的执行权限?您有任何cron输出吗?我使用cron在同一目录中创建了.tar文件。所以写访问是存在的。这是同一个目录,但您是否尝试过删除实际文件本身?添加到cron>/your/log/file.log 2>&1以查看打印的错误。还可以将-print添加到find命令中,以使其打印找到的所有匹配项,并查看日志进行分析。您的命令本身应该是正确的。对于find/path/to/files中的文件名,键入f-mtime+10;不回显rm$filename;“完成”命令运行正常,但再次在命令find/path/to/files-type f-mtime+10中不输出任何类型-是否有任何输出?您可能没有任何候选文件,例如10天前修改的文件