我有一個cron作業:Cron作業stderr電子郵件和日誌文件?
$SP_s/StartDailyS1.sh >$LP_s/MirrorLogS1.txt
哪裏SP_s
是腳本的路徑和LP_s
是日誌文件的路徑。這將stdout發送到我的電子郵件的日誌文件和stderr。
我如何?:
1)標準輸出和標準錯誤發送到日誌文件,
2)和標準錯誤發送到電子郵件
,或者換一種說法:標準錯誤輸出到日誌文件和電子郵件都,並且只對日誌文件標準輸出。
更新: 我到目前爲止所得到的答案都不符合我制定的標準或似乎適合CRON工作的標準。
我看到了這個,它旨在「將STDOUT和STDERR從一個命令發送到一個文件,然後將STDERR發送到另一個文件」(由unix.com上的zazzybob發佈),這看起來接近我想要的這樣做,我不知道是否會激發別人比我更聰明:
((my_command 3>&1 1>&2 2>&3) | tee error_only.log) > all.log 2>&1
我想cron來STDERR發送電子郵件,而不是「其他文件」。
謝謝「號」, 我看到這種情況,其目的是「從發送的命令輸出和錯誤到一個文件,然後只需STDERR到另一個文件」,發表zazzybob上unix.com: ( (my_command 3>&1 1>&2 2>&3)| tee error_only.log)> all.log 2>&1 它與您的建議和我想要做的非常相似(除了我希望cron發送STDERR電子郵件而不是「另一個文件」)。不幸的是我沒有足夠的知識來修改它以滿足我的需求。它能激發任何想法嗎? 乾杯, Steph – 2009-08-24 19:22:44
上面發送stdout和stderr到一個文件,並且還發送stderr到stdout(所以它會被郵寄如果你從一個cron作業運行)。所以stderr會收到你的郵件(我不知道如何發送stdout/err到只有一個文件,而不是上面的2),並且仍然只發送stderr到郵件) – nos 2009-08-24 20:15:01