我是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命令的完整路径。
再次感谢大家的帮助:)
答案 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)
/bin/sh
来执行命令。PATH
? wget
可能不在默认PATH
内,也可能根本没有PATH
。尝试在脚本中使用/path/to/wget
。请注意,每分钟下载一次相同的PDF文件可能是一个愚蠢的想法,但是......
答案 4 :(得分:2)
如果您的cronjob正在将内容写入磁盘,请注意系统首选项"尽可能将硬盘置于睡眠状态"未经检查。
这阻止了我的cronjob备份任务的执行。