我的cronjob每15分钟重复一次,我不知道为什么。
这里是replace实际命令的crontab文件:
# mh dom mon dow command # Comment 0 9 * * * command arg1 0 14 * * * command arg1 0 19 * * * command arg1 0 1 * * * command arg1 #0 19 * * * command arg1 #0 22 * * * command arg1
我修改了crontab并重新启动了服务器。 一切按预期开始。 但它每15分钟不断重复命令。 我的命令是使用wget启动Web服务的sh脚本。
我有一种感觉,crontab在15分钟后重复失败的命令(由于web服务需要超过1分钟才能执行,所以wget大部分时间都失败了)。 我对吗? 这怎么解决?
cron不会重新尝试工作。 它只是按计划运行命令。 如果他们成功或失败,他们并不一定关心。 cron也不会施加任何超时。
你可能想检查你的syslog和/ var / log / cron(至less在RedHat风格的系统上是这样的)。
另外,如果拥有crontab的用户没有收到有关wget命令输出的电子邮件,请插入一个MAILTO = [email protected]以便更好地了解命令执行过程中发生的情况。
看到:
man 5 crontab
…有关可以为用户的crontabconfiguration的其他一些设置的更多详细信息。
从WGET的人
在与networking进行交互时,Wget可以检查超时并在需要太长时间的情况下中止操作。 这可以防止像挂读和无限连接的exception。 默认情况下启用的唯一超时是900秒的读取超时。 将超时设置为0将完全禁用它。 除非您知道自己在做什么,否则最好不要更改默认的超时设置。
我很懒,所以只有两个快速的答案。
第一个是在/ etc / cron *下查看是否有一些有趣的事情可以回答你的问题。
第二个是看ps aux,看看是否有一些你不知道的过程,也许是每隔15分钟启动一次脚本。
然后免费第三个,你可以修改你的脚本告诉(logging)从谁启动,也许在开始时添加像ps aux | grep $ PPID> /tmp/your_script_parent_process.log。
我原谅了。 也可能有另一个答案,也许命令是通过另一个用户的crontab执行的。
安德里亚
我发现默认情况下wget在失败时重复请求。 添加“-t 1”或“–times = 1”解决了这个问题