关于Ubuntu Hardy的Cron Job执行但未按预期删除文件

时间:2009-05-24 15:43:30

标签: ubuntu cron rm

我这里有点腌菜,想知道是否有人可以给我一些指示:

我有一个cron作业,每天为特定用户执行,并且应该扫描特定目录中的文件。从技术上讲,这是两个工作。我已经打开cron.log来验证它们是否正在执行,它们是:

May 24 11:03:01 AppNameGoesHere /USR/SBIN/CRON[11257]: (mongrel_AppNameGoesHere) 
  CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/
  {popular,index,purchasing,purchasing-alternate,support,about-us,guarantee,screenshots}.htm{,l})
May 24 11:04:01 AppNameGoesHere /USR/SBIN/CRON[11260]: (mongrel_AppNameGoesHere)
  CMD (rm -rf /var/www/apps/AppNameGoesHere/current/public/
  {stats,popular,bcf,articles,expenses})

我删除了实际的用户名并对其进行了格式化,以便在StackOverflow上不那么难看。

现在,我的问题:尽管我可以看到这些删除在日志中执行并且显然成功,但如果我转到指定的目录,文件仍然存在。我最初怀疑hijinx正在进行许可,但我已经验证我可以通过进入mongrel_AppNameGoesHere用户并发出单独的rm命令或通过将cron作业复制/粘贴到命令行来手动删除文件。尽管cron作业成功执行了几天,但我没有手动删除的任何内容仍然没有被删除。

有关可能发生的事情的任何建议?我以前直接在/ etc / crontab文件中使用Dapper Drake和这些cron作业,当我升级到Hardy时,我将它们移动到用户特定的crontabs(通过sudo crontab -e - u mongrel_AppNameGoesHere),这是他们看起来的地方已停止工作。)

1 个答案:

答案 0 :(得分:6)

问题是{}是 shell 提供的shell扩展的一部分,因此为了使其工作,您需要更改执行cron条目的shell。

默认使用/ bin / sh,所以只需输入:

SHELL = / bin / bash

作为你的crontab中的第一行,所以事情应该重新开始。