Solaris

我可以更改“last”命令的輸出格式以顯示年份嗎?

  • September 14, 2016

我正在嘗試找到一種方法來報告我的 Solaris 10 伺服器上所有使用者的最新登錄。我從last命令的輸出開始。使用該命令,我得到如下輸出:

bd9439    pts/1        vpn-xxx-xx-xxx-x Fri Oct 25 10:46   still logged in
vf7854    pts/1        vpn-xxx-xx-xxx-x Fri Oct 25 10:23 - 10:38  (00:15)

根據手冊頁,日期和時間格式由語言環境控制。我很少使用區域設置。有什麼我可以使用的東西可以改變顯示以包括日期的“年”部分嗎?我希望得到與此類似的輸出行:

bd9439    pts/1        vpn-xxx-xx-xxx-x Fri Oct 25 2013 10:46   still logged in
vf7854    pts/1        vpn-xxx-xx-xxx-x Fri Oct 25 2013 10:23 - 10:38  (00:15)

我不清楚手冊頁是指last命令本身的輸出還是數據實際儲存在 /var/adm/wtmpx 中的方式。

如果有另一種方法來獲得這個“最後登錄”屬性,我很樂意學習它。

在其中我一半提供上下文,一半咆哮

您遇到了一個我不喜歡管理 Solaris 系統的主要原因的範例:沒有什麼是簡單的。

我不知道語言環境是否真的會做任何事情,除了改變時間戳某些部分的順序。如果有人知道如何誘使 Solarislast參加這一年,我很感興趣,但我不會屏住呼吸。Sun 的軟體開發口號似乎是“技術上可行”。

Sun 似乎已經開發出了他們絕對需要的東西,然後幾乎停在那裡。因此,您最終會得到類似這樣的普遍接受的解決方案,並且您只需保留列出的常見問題解決方法集合。

我發現這樣做的唯一方法是使用/usr/lib/acct/fwtmp將管道的全部內容轉儲/var/adm/wtmpx到我用於操作文本輸出(、、、等)的其他程序的grep管道tacsed

獎勵:由於查找文件末尾並僅向後移動固定wtmpx記錄長度會要求太多,fwtmp因此只能列印出wtmpx文件中出現的內容。tac因此,除非您實際上對最舊的資訊感興趣(這是不可能的案例,但我離題了) ,否則您必須使用其他一些方法(可能)來反轉線條。

取決於你的系統執行了多長時間wtmpx,所以你可能想去喝杯咖啡,也許去檢查一下你的輪胎是否充氣不足,或者在你休息的時候讀一兩本書在它。

您的問題的實際答案:

這是一個模擬的命令,last大多數有興趣查看登錄記錄的人都可以使用:

# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head 

您會注意到我必須通過管道wtmpx輸入,因為他們沒有為您提供僅將文件提供給fwtmp. 這是因為stdin在大多數案例中通過 Technically Works™ 提供它,他們不必編寫幾行額外的程式碼。所以他們寧願讓管理員這樣做。

這是我所關注的系統上的上述範例輸出:

[root@atum root]# cat /var/adm/wtmpx | /usr/lib/acct/fwtmp | tac | head
jadavis6                         ts/1 pts/1                                19410  7 0000 0000 1382723864 157168 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
jadavis6                              sshd                                 19404  7 0000 0000 1382723864 133973 0 19 ditirlns01.xxx.edu Fri Oct 25 13:57:44 2013
oracle                                sshd                                  6640  8 0000 0000 1382713401 157107 0 0  Fri Oct 25 11:03:21 2013
oracle                           ts/1 pts/1                                 6647  8 0000 0000 1382713401 150489 0 0  Fri Oct 25 11:03:21 2013
oracle                           ts/1 pts/1                                 6647  7 0000 0000 1382712445 24488 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:25 2013
oracle                                sshd                                  6640  7 0000 0000 1382712442 304729 0 23 a0003040148735.xxx.edu Fri Oct 25 10:47:22 2013
jadavis6                              sshd                                 23537  8 0000 0000 1382560970 410725 0 0  Wed Oct 23 16:42:50 2013
jadavis6                         ts/1 pts/1                                23544  8 0000 0000 1382560970 404795 0 0  Wed Oct 23 16:42:50 2013
jadavis6                         ts/1 pts/1                                23544  7 0000 0000 1382552999 619524 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
jadavis6                              sshd                                 23537  7 0000 0000 1382552999 602215 0 19 ditirlns01.xxx.edu Wed Oct 23 14:29:59 2013
[root@atum root]#

編輯:

我知道我在抱怨那裡的一些小事,但過了一段時間我就厭倦了每一件小事(比如簡單地問“今年是什麼時候?”)變成一個小時長的 googlefest 或者或多或少只是部落的東西知識(例如 的存在fwtmp)。

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