2014-08-28 115 views

回答

2

如果你想的count用戶多少次登錄,那麼它不可能通過command-line IMO ....特別是因爲有sudo選項假裝後者可能無法你的邏輯其它用戶 - 如果您有任何

此外,how many times需要有一個時間托架(from when直到when)..所以你需要有一個時間上限托架以及從要追查count.All這將是一個非常混亂只是爲了保持一個count

如果我必須跟蹤它,我最好的猜測將是有一個script並保持一個db-table保持users登錄的count

1

您可以使用last

last | grep ^username| grep 'logged in' | wc -l 

例如:

$ last | grep ^igor | grep 'still logged' 
igor  pts/9  astaro  Thu Aug 28 09:55 still logged in 

大約需要用戶從wtmp -database(/var/log/wtmp)的登錄信息。 這意味着只顯示該數據庫中的條目。 您必須記住,有可能的是,如果用戶很久以前登錄過,則沒有關於此登錄的信息(因爲輪換)。

另外,我必須注意,「用戶登錄多少次」的概念有點含糊。 用戶可以有正在運行的進程,但沒有登錄(或至少沒有在wtmp註冊), 用戶可以使用su等。

使用這種方式,你可以指望用戶開放終端會話的數量:

$ ps aux | grep ^igor | fgrep S+ | wc -l 
12 
+0

thnx爲你的答案...但這個命令'最後| grep ^用戶名| grep'登錄'| wc -l'會給出用戶當前登錄的信息。 – pulse 2014-08-28 07:24:14

+0

@pulse:我認爲這是我們試圖解決的任務,不是嗎? – 2014-08-28 07:30:34

+0

@IgorChubin:沒有隊友,OP想要*計算你登錄的次數*對於eg.say NoobEditor從SomeDate登錄15次直到SomeDate :) – NoobEditor 2014-08-28 07:35:29

0

您可以將邏輯添加到/ etc/profile。 當您將一行添加到日誌文件時,請不要忘記管家。 您可能需要創建每日日誌文件並刪除10天以前的文件。