Tail
tail -f dir1/app..log. dir2/app..log. 的守護程序版本
我需要編寫一個守護程序來跟踪多個主機上的日誌文件內容。“日誌驅動器”(主機是 Windows 伺服器)都安裝在單個 Linux 主機中。
棘手的部分是日誌文件會來(當由伺服器的客戶端上傳時)和去(當存檔時),並且沒有固定的名稱。它們都有命名模式“app.DATE.log.N”,並且目錄是固定的(伺服器列表是固定的)。
因此,我需要一個“tail -f”,它採用“模式”而不是實際名稱,並定期檢查(每隔幾秒鐘;作為近乎實時的監控)是否使用這種模式創建了新文件,並且可以處理文件也被刪除(它們在 24 小時後被移動和壓縮)。
理想情況下,我會使用現有的 unix 工具進行“跟踪”,這樣我就可以編寫一個從標準輸入讀取的簡單守護程序。並且該解決方案應該足夠強大以處理 IO 錯誤,因為我們談論的是通過網路安裝的驅動器。
我發現有像“lnav”和“multitail”這樣的工具,但它們似乎都是為互動式使用而設計的,這不是我需要的。
我會使用 syslog(例如rsyslog或 syslog-ng)和logrotate來實現你想要的。這是一個教程,可以為您提供完整的圖片。