crontab没有运行我的脚本

时间:2012-11-08 00:34:14

标签: macos unix crontab

我是cron工作的新手。我读了一篇关于如何使用crontab编写cron作业的post。 所以我的crontab看起来像这样:

1 * * * * /Users/apple/Desktop/wget/down.sh

这基本上意味着我想要执行脚本的每一分钟: down.sh 。现在脚本运行了 手动很好。该脚本是一个从互联网上下载PDF的简单程序:

#!/bin/bash

wget -U Mozilla -t 1 -nd -A pdf "http://www.fi.usj.edu.lb/images/stories/HoraireS08/3eli.pdf" -e robots=off;

一旦终端告诉我他正在安装新的crontab,我不知道为什么它不会每分钟都在运行。

有人可以帮帮我吗?

解决方案: 谢谢大家的帮助, mcalex 所说的语法应该是 * * / 1 * * * path / to / script 如果你想让它每小时执行一次。 cron工作正常工作。但是我的错误只是写权限,实际上在执行wget命令时,它应该在当前workind目录中编写pdf文件,如果是cron选项卡,这是一个系统目录。所以我在执行wget命令之前导航到Desktop目录就解决了我的问题:

cd /Users/apple/Desktop/wget

然后做我想做的事。 PS:我也应该包括wget命令的完整路径。

再次感谢大家的帮助:)

5 个答案:

答案 0 :(得分:9)

当您在第一列中放置1时,它将在第一分钟(每小时)运行。为了让它在每小时的每一分钟运行,您需要将分钟列设置为* / 1

所以你的行应该是:

*/1 * * * * /Users/apple/Desktop/wget/down.sh

支持链接: 每分钟工作:https://bbs.archlinux.org/viewtopic.php?id=59180
每5分钟工作一次:http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/

答案 1 :(得分:6)

1 * * * * /Users/apple/Destop/wget/down.sh

从这个条目开始,脚本永远不会每分钟运行,因为它将在每小时的第一分钟运行。

对crontab文件进行此更改,以便每分钟运行一次此脚本。

“* * * * * /Users/apple/Destop/wget/down.sh”

答案 2 :(得分:3)

你有拼写错误吗?看起来你可能有错误输入的桌面?

另一件事是将运行脚本的输出重定向到一个文件,这样你就可以看到发生了什么:

1 * * * * /Users/apple/Destop/wget/down.sh>> /tmp/cron.out

然后查看文件,看看发生了什么。

答案 3 :(得分:3)

  • cron是否向您发送了一些详细说明出现问题的电子邮件?
  • 该路径下的脚本是否存在?
  • 请注意,cron使用/bin/sh来执行命令。
  • 您是否在脚本中设置了正确的PATHwget可能不在默认PATH内,也可能根本没有PATH。尝试在脚本中使用/path/to/wget

请注意,每分钟下载一次相同的PDF文件可能是一个愚蠢的想法,但是......

答案 4 :(得分:2)

如果您的cronjob正在将内容写入磁盘,请注意系统首选项"尽可能将硬盘置于睡眠​​状态"未经检查。

这阻止了我的cronjob备份任务的执行。