Logs
/var/log/lastlog 是一個巨大的稀疏文件(1.1TB)有什麼原因嗎?
我讀過一些問題,詢問如何
rsync
有效地稀疏文件,提到文件/var/log/lastlog
和/var/log/faillog
. 事實上,我自己也發現這些文件是一個“問題”,因為它們通過 rsync 進行備份會使它們變得“不稀疏”。因此,我想知道的是,將這些文件設為稀疏、巨大的文件(在我的情況下是 1.1TB)的需求/背景動機是什麼?
同樣與此相關的是:由於我假設它們是日誌文件,所以我不太關心我截斷了這些文件,我是否因為截斷這些文件而損壞了任何東西?
因此,我想知道的是,將這些文件設為稀疏、巨大的文件(在我的情況下是 1.1TB)的需求/背景動機是什麼?
這就是它應該的樣子。
/var/log/lastlog
不是類似的日誌文件/var/log/syslog
,它的名稱應該讀作“最後登錄列表”而不是“最後一個日誌文件”。它由模組維護
pam_lastlog(8)
,它基本上是一個這樣的數組:struct lastlog { time_t ll_time; // 4 char ll_line[UT_LINESIZE]; // 32 char ll_host[UT_HOSTSIZE]; // 256 } entry[UINT_MAX];
典型 x86-64 機器上的欄位大小在註釋中;一個條目應該是 4 + 32 + 256 = 292 字節。
每次使用
pam_lastlog(8)
pam 模組的程序登錄使用者時,它都會尋找uid * sizeof(struct lastlog)
並覆蓋與該使用者對應的條目。我是否因為截斷這些文件而損壞了任何東西?
您確實破壞了
lastlog(1)
命令的輸出,無論如何都沒有人使用它;-)