我有一个这样的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 ......
答案 0 :(得分:2)
调用urlwatch时使用完整路径:
$ which urlwatch
/usr/bin/urlwatch
然后你的cron必须是::
* * * * * /usr/bin/urlwatch | mail -s "job changes" pc_xxx@msn.com
答案 1 :(得分:0)
将.urlwatch
目录放在/root/
下,因为程序会在那里存储其数据