为什么只有一个wget命令在我的crontab中工作?


15

我希望每天两次从服务器上的PHP脚本中获取内容,更改查询变量lang以设置所需的语言,然后将该内容保存在两个特定于语言的文件中。这是我的crontab:

*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"

问题在于,只有第一个wget命令行正在执行(或者确切地说:唯一要写入的文件是/path/to/file-sv.sql)。如果我切换第二行和第三行,则/path/to/file-en.sql改为写入。无论在哪里,第一行始终按预期运行。

然后,我尝试使用lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sql无济于事。仍然只有第一个天猫行成功执行。甚至将wget和lynx混合也没有改变!

有点绝望!我想念什么吗?在crontab上(与wget或lynx结合使用)有成千上万的文章,但似乎都涵盖了基本的设置和语法。有人知道我在做什么错吗?

谢谢,
亚历山大


您确定每次访问mydomain.com/path/?lang=zh-CN都会返回某些信息吗?您是否从命令行尝试过此操作以查看会发生什么情况(wget -O-mydomain.com/path/?lang=en)?
Torian

1
我会尝试删除并重新创建2和3之间的回车
安东尼布洛赫

最佳实践是在crontab中指定可执行文件的完整路径。像:“ / usr / bin / wget”。我认为这对您的情况无济于事,因为其中一项工作很正常。
安东尼·布洛赫

发生这种情况时,cron日志中显示什么?
豆子

@Torian:像魅力一样工作。
亚历山大·沃林

Answers:


42

尝试在crontab的末尾添加换行符。


1
你真是天赐之物!做到了!如果我有声誉,我会投票赞成你。:)
亚历山大·瓦林

1
@gelraen但是...为什么呢?
塞缪尔

2

文字有些错误。在vim中编辑crontab,然后显示不可见的字符。

:set invlist

您应该能够看到然后更正它。


怎么错?如何在Vim中编辑它?我尝试重写整个文件,以防复制粘贴会导致问题。
亚历山大·沃林

@afEkenholm:您现在如何编辑它?
bahamat 2011年

1
@bahamat:# crontab -e
亚历山大·沃林

@afEkenholm:这样做:EDITOR=vim crontab -e
bahamat 2011年

@bahamat:一切看起来都很好。$在每行末尾出现紫色?
亚历山大·沃林

1

尝试添加重定向,以调试crontab(或读取root邮件):

11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en" > /tmp/crontab_ouptput 2> /tmp/crontab_error

还要从控制台运行'wget -O /path/to/file-en.sql“ http://mydomain.com/path/?lang=en ”。

还可以使用“ crontab -e”来验证新的crontab。

另外,请尝试删除无效的行,然后从键盘重新输入。

备份corntab并运行命令:

crontab -l | crontab -

添加/tmp/crontab_ouptput 2> /tmp/crontab_error仅适用于第一行。从控制台运行命令就可以了。用我的双手重写了整个文件,但没有任何改变。
亚历山大·沃林

备份crontab并尝试:crontab -l | crontab中-
alvosu

感谢您的努力,@ alvosu,但是简单的换行就成功了!
亚历山大·沃林

1

我只是花了一些时间在运行cronie的系统上尝试上述答案(添加换行,删除换行等)。最终发现cronie 1.5.3中存在一个错误,该错误仅对每个用户执行第一个cron作业。在1.5.4中已修复

https://github.com/cronie-crond/cronie/issues/30

希望这可以节省一些时间...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.