Logs
如何減少文件名而不是 inode 編號?
我有一個軟體可以在重新啟動時輪換其日誌文件。但是,在開發過程中,我經常重啟它,所以我想隨時監控最新的日誌文件。
如果我
less
正常啟動less program.log
並按Shift
+f
到尾,當日誌文件旋轉時,我會繼續監視舊的日誌文件。我認為這是因為 inode 編號保持不變並且less
具有該 inode 的打開文件句柄。是否可以監視目前呼叫的任何日誌文件的最新活動
program.log
?具體來說,我正在開發 Sun OS,因此在那里工作的解決方案將是理想的。
less --follow-name
如果您的版本less
支持它,請使用它。該選項是在版本 416 中引入的。
然後
Shift+F
在less
.
該
less
選項--follow-name
只是解決方案的一部分;要替換
tail -F
,需要另一個參數:less --follow-name +F file.log
單獨的選項就像
less --follow-name file.log
實際上並沒有開始跟隨文件更新。您需要按 進入跟隨模式Shift``F
。(退出模式以導航
Control``C
。)不是跟隨文件,而是
--follow-name
修改less的行為。它根據文件名而不是文件描述符在 follow
Shift``F
中創建命令鍵。less
此外,沒有正常的選項可以
less
在跟隨模式下啟動。但是您可以使用命令行在啟動後執行擊鍵,方法是在它們前面加上
+
.將修飾符選項與
+F
,結合起來less
實際上會以(修改後的)跟隨模式開始。單獨使用
+F
相當於 plaintail -f
:less +F file.log