crontab与wget - 为什么它运行两次?

fly*_*sic 15 wget crontab

我有一个php脚本,它从webservice运行并插入到DB.

crontab -e

......other cron tasks above.......
...
..
..
# Run test script.php at 1610
10 16 * * * /usr/bin/wget -q -O /home/username/my_cronjobs/logs/cron_adhoc http://localhost/project/script.php

显然,在16:10,这个脚本运行两次!16:10:01和16:25:02

是不是错了,必须使用wget?或者我是否错误地设置了cron作业的时间表?

当我从浏览器运行http://localhost/project/script.php时,它只运行一次..

关于这个问题的任何想法?

我已经测试过,没有其他用户运行相同的工作......我怀疑wget的工作方式.

正如我的脚本需要至少20分钟不回送一个应答来完成(它是从we​​bservicces拉了很多数据并保存到DB)..怀疑有一个超时或默认造成这个问题的wget重试的.

jos*_*und 13

wget文档的默认读取超时为900秒或15分钟.

如果在下载的任何时候,没有收到超过指定秒数的数据,则读取失败并重新启动下载

这就是为什么你看到15分钟后再次调用该文件的原因.您可以通过添加参数和适当的秒数来指定更长的读取超时:

--read-timeout=1800
Run Code Online (Sandbox Code Playgroud)


fly*_*sic 5

我想我解决了自己的问题.

我的PHP需要一些时间来加载,我想wget重试或在一些默认指定时间后超时.

我使用/ usr/bin/php解决了这个问题