Bash脚本不删除给定目录中的文件

时间:2013-12-10 19:01:12

标签: linux bash cron find

我发现这个bash脚本在线,我想用它来删除超过2天的文件:

#!/bin/bash

find /path/to/dir -type f -mtime +2 -exec rm {} \;

我设置了一个cronjob来运行脚​​本(我提前几分钟进行测试,但它应该每24小时运行一次)

54 18 * * * /path/to/another/dir/script.sh

我退出正确,以便更新cronjob。

为什么不删除目录中的文件?

2 个答案:

答案 0 :(得分:1)

如果尝试在脚本末尾转储回显并记录输出

,该怎么办?
cron1.sh >> /var/log/cron1.log  

你可以尝试这个,但我不确定它会起作用

--exec rm -rf {}

答案 1 :(得分:0)

大多数cron作业没有设置PATH。您必须完全限定find命令。

#!/bin/bash
/usr/bin/find /path/to/dir -type f -mtime +2 -exec rm {} \;

如果按照damienfrancois的建议捕获stdout和stderr,您可能会看到消息“command not found:find”。如果你没有捕获stdout和stderr,cron通常会将输出发送到cron作业所有者的电子邮件,除非配置为不这样做。