2013-12-11 64 views
1

的輸出我有一個cron作業是這樣的:cron作業不郵寄urlwatch

* * * * * urlwatch | mail -s "job changes" [email protected] 

它的郵件每分鐘預期。但是,當我在本地服務器上更改測試html頁面時,它不會通過電子郵件發送差異,只是繼續發送標題爲「作業更改」的空白郵件。

當我粘貼作業提示:

[email protected]:/$urlwatch | mail -s "job changes" [email protected] 

和之前運行/更改HTML後,它的電子郵件在第2電子郵件的不同預期。

(PC是urls.txt的所有者和的cronjob是由電腦通過crontab -e命令創建)

爲什麼cron的版本不支持電子郵件的urlwatch輸出?

這是推動我瘋狂......

任何/所有的幫助感激地接受。

PS無法創建urlwatch作爲一個新的標籤 - 需要1500代表:(

更新:

如果我分裂的命令放到兩位這樣的:

urlwatch > ~/.urlwatch/output.txt 
mail -s "output" [email protected] < ~/.urlwatch/output.txt 

This works。

如果我加入這樣一個管道的兩條語句:

urlwatch > ~/.urlwatch/output.txt | mail -s "output" [email protected] < ~/.urlwatch/output.txt 

我收到一個提示,立即寫着

Null message body; hope that's ok 

我注意到urlwatch需要2 - 3秒完成,我的理解shell命令等待上面的命令來完成(除非你使用&? )。不知道這是否意義重大。

而且,我使用ssmtp中......

+0

在linux終端上試試這個:'cat somefile.html | mail -s「工作變更」pc_xxx @ msn.com「 –

+0

好吧,只是試了一下 - 文件通過電子郵件發送內容。接下來是什麼... – askchipbug

回答

0

認沽.urlwatch目錄/root/下的程序會在那裏存儲數據

+0

好吧明天就試試這個,並回報... – askchipbug

+0

不,將文件移動到/root/.urlwatch/urls.txt,我得到:錯誤:您需要先創建一個urls.txt文件。 將它放在/home/pc/.urlwatch/urls.txt中 – askchipbug

1

使用完整路徑調用urlwatch時:

$ which urlwatch 
/usr/bin/urlwatch 

然後您的cron必須是::

* * * * * /usr/bin/urlwatch | mail -s "job changes" [email protected] 
0

@a skchipbug:您的案例看起來非常具體,但以下是可能有幫助的事情:

-check /var/log/mail.err或/ var/log/mail。登錄發現提示 -crontab用戶/權限 - 一些服務器條內容不是一個很好的理由 -i使用的mailx它工作正常,我在這裏使用了crontab -e我的cron作業:

* * * * * urlwatch --urls=/var/www/html/urls.txt --hooks=/home/foo/hooks.py | mailx -v -r "[email protected]" -s "This is the subject line" -S smtp="smtp.gmail.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="[email protected]" -S smtp-auth-password="bardaf16charsfoo" -S ssl-verify=ignore [email protected] 

希望它有幫助。