2013-07-18 24 views
4

我想弄清登錄到我係統的時間(基本上是系統啓動)。我正在利用Unix命令last。但是,它不會讓我拉超過一定數量的條目。我認爲它的拉取日誌文件,即/var/log/wtmp,會在一定的大小後被覆蓋。在Linux中查找登錄時間

我看到我也有一個wtmp.1文件,所以使用-f參數我可以回去一個月使用此參數進一步返回日誌。想知道如果日誌進一步歸檔某處。

所以,我的問題是:有沒有辦法讓舊條目。

以下是last調用我想提出:

last -n 10000|grep "system" 

以下是輸出

reboot system boot 3.5.0-36-generic Sun Jul 7 07:07 - 22:08 (15:01)  
reboot system boot 3.5.0-36-generic Sat Jul 6 23:23 - 23:23 (00:00)  
reboot system boot 3.5.0-34-generic Sat Jul 6 09:40 - 23:22 (13:42)  
reboot system boot 3.5.0-34-generic Sat Jul 6 09:38 - 09:39 (00:00)  
reboot system boot 3.5.0-34-generic Sat Jul 6 06:40 - 09:39 (02:58)  
reboot system boot 3.5.0-34-generic Sat Jul 6 06:15 - 06:17 (00:02)  
reboot system boot 3.5.0-34-generic Sat Jul 6 06:13 - 06:17 (00:03)  
reboot system boot 3.5.0-34-generic Fri Jul 5 19:30 - 22:34 (03:03) 

的最後幾行,我沒能得到進一步的日誌時光倒流。

  1. 這是正確的方法嗎?
  2. 我們如何看到較舊的日誌?例如,如果我通過-n 10000-n 1000000,我會得到相同的輸出。

最後我會寫一個快速的Python腳本來解析這個o/p從子流程模塊。

編輯:以下大多數答案都是正確的。不幸的是只能接受一個答案。日誌一旦消失了!

+0

開機時間!=登錄時間。請更改您的問題的標題。祝你好運。 – shellter

+0

看來你真正要問的是如何增加(也可能拷貝備份)旋轉wtmp日誌的數量。出於所有實際的目的,除非你不知道你的系統已經這樣做了,你想看的過去的數據已經消失了。 – Duck

回答

3

你不說你正在運行什麼類型的Unix/Linux的,但在我的Ubuntu主持這個工作不錯,去年啓動時間

for f in /var/log/wtmp*; do last -f $f reboot;done 

它所做的就是找到在/ var所有的wtmp文件/然後過濾掉重啓用戶

1

cat/proc/uptime

這會告訴您系統運行了多久。 這就是你想要的嗎?

+0

我實際上需要所有以前的登錄。 「正常運行時間」僅提供最近登錄的正常運行時間。 –

2

最後一次通過文件/ var/log/wtmp進行搜索。 因此,關於2)它只能列出wtmp中包含的條目。 (使用參數f來指定任何其他文件)如果您使用日誌旋轉器旋轉該文件,則默認情況下不會看到這些條目。 1)取決於;-)

您可以只列出那些該日誌(相應的旋轉日誌仍然存在登錄)

2

last命令獲取我的電流從wtmp文件的信息(/var/log/wtmp系統,但取決於您的分配,實際路徑可能不同)。該文件通常會在大多數發行版中定期輪換,並保留一定數量的以前的文件,您應該可以使用last -f <filename>(儘管您可能需要首先解壓縮較舊的文件)才能訪問該文件。

+0

我有一個'wtmp.1'文件。編輯這個問題來反映這一點。可以再回到1個月。但我沒有看到存檔的舊日誌。 –