2017-08-25 54 views
0

我想寫一個簡單的cron作業的包裝以下列方式延長本機的cron:在shell腳本中,如何在shell命令執行時回顯標準輸出(不是標準錯誤)?

  1. 它僅發送電子郵件時的作業打印的東西到標準錯誤或作業的返回碼不爲0
  2. 它將所有執行的命令(及其輸出)記錄到日誌文件中。

這裏是我的問題,我想在cron作業執行的命令記錄到日誌中(如上子彈#2),但/bin/bash -x job.sh(或set -xjob.sh)將觸發警報的電子郵件(如上破子彈#1)。

回答

1

bash(1)手冊頁:

BASH_XTRACEFD

如果設定爲相應於一個有效的文件描述符的整數, 慶典會寫生成的跟蹤輸出時set -x啓用 到文件描述符。當BASH_XTRACEFD未設置或分配新值時,文件描述符被關閉 。未設置 BASH_XTRACEFD或將其分配給空字符串會導致將跟蹤 輸出發送到標準錯誤。請注意,將 BASH_XTRACEFD設置爲2(標準錯誤文件描述符),然後取消設置 將導致標準錯誤被關閉。

...

BASH_XTRACEFD=1 
set -x 
相關問題