cron job没有邮寄urlwatch的输出

时间:2013-12-11 09:11:04

标签: cron

我有一个这样的cron工作:

* * * * * urlwatch | mail -s "job  changes" pc_xxx@msn.com

按预期邮寄每分钟。但是,当我更改本地服务器上的测试html页面时,它不会通过电子邮件发送差异,只是继续邮寄标题为“作业更改”的空白邮件。

将作业粘贴到提示符时:

pc@dellbox:/$urlwatch | mail -s "job  changes" pc_xxx@msn.com

并在更改html之前/之后运行,它会按预期通过电子邮件发送第二封电子邮件中的差异。

(pc是urls.txt的所有者,而cronjob是由pc通过crontab -e创建的)

为什么cron版本不通过电子邮件发送urlwatch输出?

这让我感到沮丧...

感谢任何/所有帮助。

ps无法将urlwatch创建为新标签 - 需要1500个代表:(

更新

如果我将命令分成两个这样的位:

urlwatch > ~/.urlwatch/output.txt
 mail -s "output" pc_xxx@msn.com < ~/.urlwatch/output.txt

这很有效。

如果我用这样的管道加入这两个语句:

urlwatch > ~/.urlwatch/output.txt | mail -s "output" pc_xxx@msn.com < ~/.urlwatch/output.txt

我立刻得到提示

Null message body; hope that's ok

我注意到urlwatch需要2到3秒才能完成,我理解shell命令等待前面的命令完成(除非你使用&amp;?)。 Dunno,如果这是重要的。

另外,我正在使用sSMTP ......

2 个答案:

答案 0 :(得分:2)

调用urlwatch时使用完整路径:

$ which urlwatch
/usr/bin/urlwatch

然后你的cron必须是::

* * * * * /usr/bin/urlwatch | mail -s "job  changes" pc_xxx@msn.com

答案 1 :(得分:0)

.urlwatch目录放在/root/下,因为程序会在那里存储其数据