2012-11-13 165 views
1

林:運行crontab wget命令

00 */1 * * * wget http://www.test.com/cron/archieve 

我想知道在命令的末尾使用> /dev/null 2>&1的差異,如果它的recomended。

+0

'>的/ dev/null的2>&1'只沉默的輸出。不過,我不知道用cron運行時會發生什麼。 – Xymostech

+0

我寧願建議將標準輸出和錯誤重定向到某個給定的文件,例如'> wget.out 2>&1'然後你可以看看'wget.out'如果你懷疑有些問題 –

+0

可能追加而不是覆蓋,雖然;否則下一次運行會截斷該文件,可能在您有機會檢查它之前。但是,這需要您設置一些日誌輪換。更好的恕我直言,以無聲模式運行'wget'('-q'選項;只有錯誤輸出),並允許'cron'在有事情需要報告時給你發電子郵件。 – tripleee

回答

5

如果不加> /dev/null 2>&1,該命令的輸出將被郵寄給用戶,這個cron作業運行時 - 可能是你。

我可以想象你不想用cron作業被垃圾郵件 - 但這是你

編輯:解釋什麼> /dev/null 2>&1的真正含義。

有3個標準文件描述符:0(標準輸入),1(標準輸出)和2(標準錯誤)。 > file1> file相同,換句話說,重定向std。文件描述符1(標準輸出)到文件。

2>&1表示重定向std。文件描述符2(stderr)到1(stdout)被重定向到的相同位置。

最後,的> /dev/null 2>&1裝置充分發揮作用既輸出和錯誤重定向到/dev/null,換言之使該程序完全沉默

+0

感謝您的解釋!我是否也應該在'-O/dev/null'中使用'wget'? –

+0

我想你可以,但這意味着你將'wget'的輸出保存到'/ dev/null'中。如果是這樣的話,爲什麼在第一個地方把'wget'換成cron?它不會做任何事情,是嗎?或者你想發出GET請求來顯示你的服務器是活着的嗎? – mvp

0

如果結果對您無關緊要,您可以在> /dev/null 2>&1中重定向stdio/stderr流。看到一些例子:

[email protected]:~/dev$ ls 
arm-2011.03-42-arm-none-eabi.bin linux 
backup_from_ak     linux-3.4.6.tar.bz2 
bc-1.06       linux.tar.gz     
CodeSourcery      mach-lpc32xx        
[email protected]:~/dev$ ls > /dev/null 2>&1 
[email protected]:~/dev$