crontab 没有运行我的脚本
Posted
技术标签:
【中文标题】crontab 没有运行我的脚本【英文标题】:crontab is not running my script 【发布时间】:2012-10-28 03:46:13 【问题描述】:我是 cron 作业的新手。我阅读了post,了解如何使用 crontab 编写 cron 作业。 所以我的 crontab 看起来像这样:
1 * * * * /Users/apple/Desktop/wget/down.sh
这基本上意味着每分钟我都想执行脚本:down.sh。现在脚本运行 手动就好。该脚本是一个从 Internet 下载 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 * * * 路径/到/脚本 如果您希望它每小时执行一次。 cron作业正常工作。但是我的错误只是写权限,实际上在执行wget命令时,它应该在当前workind目录中写入pdf文件,该目录是cron选项卡的系统目录。所以我只是通过在执行 wget 命令之前导航到桌面目录来解决我的问题,如下所示:
cd /Users/apple/Desktop/wget
然后做我想做的事。 PS:我也应该包含 wget 命令的完整路径。
再次感谢大家的帮助:)
【问题讨论】:
它多久运行一次?还有,当你手动运行时,任务需要多长时间? @mcalex 它根本不运行,并且几乎立即手动执行脚本。 每小时的调度语法是0 * * * *
,每分钟的* * * * *
。 (备案)
【参考方案1】:
当您在第一列中输入 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/
【讨论】:
@Elie 你应该接受这个答案,因为它是你正在寻找的解决方案 你不需要输入1
。 * * * * *
与 */1 * * * *
相同。
不,忘记这一切,每分钟执行一次,只需* * * * * cmd
【参考方案2】:
1 * * * * /Users/apple/Destop/wget/down.sh
从此条目开始,脚本永远不会每分钟都运行,因为它会在每小时的第一分钟运行。
对您的 crontab 文件进行此更改,以每分钟运行一次此脚本。
"* * * * * /Users/apple/Destop/wget/down.sh"
【讨论】:
【参考方案3】:你有错别字吗?看起来您可能输入了错误的桌面?
另一件事是将运行脚本的输出重定向到一个文件,这样你就可以看到发生了什么:
1 * * * * /Users/apple/Destop/wget/down.sh >> /tmp/cron.out
然后检查文件以了解发生了什么。
【讨论】:
这将只重定向标准输出。如果您还想出错,请执行以下操作: ..down.sh >> /tmp/cron.out 2>&1 请注意,1****
将是“第一分钟”,而不是每分钟【参考方案4】:
如果您的 cronjob 正在将内容写入磁盘,请注意未选中系统首选项“尽可能让硬盘进入睡眠状态”。
这阻止了我的 cronjob 备份任务执行。
【讨论】:
【参考方案5】: cron 是否向您发送了一些详细说明问题所在的电子邮件? 该路径下的脚本是否存在? 请注意,cron 使用/bin/sh
来执行命令。
您是否在脚本中设置了正确的PATH
? wget
可能不在默认的PATH
中,或者根本没有PATH
。尝试在脚本中使用/path/to/wget
。
请注意,每分钟下载一次同一个 PDF 文件可能是个愚蠢的想法,不过...
【讨论】:
以上是关于crontab 没有运行我的脚本的主要内容,如果未能解决你的问题,请参考以下文章