指令碼日誌的標準輸出

tomato_4發表於2024-08-31
crontab -e

40 23 * * * sh /tbin/logclear.sh 1>> /tmp/a.log 2>>/tmp/a.log
  • 1>> /tmp/a.log: 將標準輸出(即正常情況下的輸出資訊)追加到檔案 /tmp/a.log 中。
  • 2>> /tmp/a.log: 將標準錯誤輸出(即錯誤資訊)也追加到檔案 /tmp/a.log 中。

在 Unix 系統中,檔案描述符用於表示檔案、裝置等輸入輸出資源。每個程序預設會開啟三個檔案描述符:

  1. 標準輸入(stdin): 檔案描述符為 0,用於接收輸入資料。
  2. 標準輸出(stdout): 檔案描述符為 1,用於輸出正常資訊。
  3. 標準錯誤輸出(stderr): 檔案描述符為 2,用於輸出錯誤資訊。

在提到的 crontab 配置中:

  • 1>> /tmp/a.log: 1 表示標準輸出(stdout),>> 表示追加(append)模式。這行的意思是將標準輸出的資料追加到 /tmp/a.log 檔案中。
  • 2>> /tmp/a.log: 2 表示標準錯誤輸出(stderr),>> 同樣表示追加模式。這行的意思是將標準錯誤輸出的資料追加到 /tmp/a.log 檔案中。

透過這種方式,無論指令碼執行過程中產生的是正常資訊還是錯誤資訊,都會被記錄到同一個日誌檔案中。

相關文章