Categories: Linux

Linux 將 Crontab 的輸出導入記錄檔案、Syslog 教學與範例

介紹如何將 crontab 之內執行程式的輸出資料導入 syslog 中儲存。

Crontab 基本寫法

一般來說,如果需要記錄 crontab 執行程式的狀況,最直接的方式就是將所有的輸出(包含正常訊息與錯誤訊息)導入檔案記錄下來:

# 將輸出導入指定的檔案
59 23 * * * /path/to/script.sh > /path/to/output.log 2>&1

這樣寫的話,會讓 /path/to/script.sh 所產生的任何訊息都直接存入 /path/to/output.log 這個記錄檔中。

如果需要將正常訊息與錯誤訊息分開存放,可以將標準輸出(standard output)與標準錯誤(standard error)導入不同檔案:

# 將正常與錯誤輸出分開,導入不同的檔案
59 23 * * * /path/to/script.sh > /path/to/output.log 2> /path/to/error.log

這樣的話 /path/to/script.sh 所產生的正常訊息會儲存在 /path/to/output.log,而錯誤訊息則會放在 /path/to/error.log

將輸出導入 Syslog

如果希望讓 crontab 執行程式的輸出可以導入系統的 syslog 統一存放,可以使用 logger 指令,他會將收到的訊息轉送至系統的 syslog 中記錄下來:

# 將輸出導入 Syslog
59 23 * * * /path/to/script.sh 2>&1 | /usr/bin/logger -t MY_TAG

通常在使用 logger 的時候,會加上 -t 參數並指定一個標籤(tag),標示這一條訊息的應用程式種類或名稱等,這一個標籤會在寫入記錄檔時自動加在訊息之前,方便閱讀或搜尋。

透過 logger 轉送至 syslog 的訊息,通常預設會存放在 /var/log/syslog 這個記錄檔之中,如果希望放在其他位置,可以透過 -p 參數指定 priority(預設為 user.notice),然後再去更改 syslog 對應規則的儲存位置即可。

參考資料:StackExchange

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

10 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

10 個月 ago