Logs

/var/log/lastlog 是一個巨大的稀疏文件(1.1TB)有什麼原因嗎?

  • November 14, 2021

我讀過一些問題,詢問如何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)命令的輸出,無論如何都沒有人使用它;-)

引用自:https://unix.stackexchange.com/questions/529827