如何檢查使用者空閒以來已經過了多少分鐘?

如何檢查使用者空閒以來已經過了多少分鐘?

我想編寫一個腳本來顯示使用者空閒了多少分鐘。自從上次觸碰鍵盤和滑鼠以來。例子:

#!/bin/bash
while true
do
 command_lines...
 ...
 sleep 60
 echo $var
done

結果:

電腦/使用者空閒 1 分鐘。

電腦/使用者空閒 2 分鐘。

電腦/使用者閒置 5 分鐘。

我們可以這樣做嗎?它可以是 Bash、Python 等。

答案1

從手冊頁來看,「w」指令應該有幫助:

w - 顯示誰已登入以及他們正在做什麼。

# w | awk '{if (NR!=1) {print $1,$5 }}'
USER IDLE
root 0.00s

答案2

鍵盤和滑鼠在多用戶系統上並不是一個明確的概念,其中可以有多個X 伺服器在電腦上運行,有些連接到一個或多個實體鍵盤或滑鼠,有些則不連接,或者在電腦上運行的終端連接遠端X 伺服器或透過 ssh 運行的 bash shell 以及“bash”從用戶獲取輸入的更多方式...

「xprintidle」將為您提供所連接的 X 伺服器的空閒時間(該 X 伺服器可能是本地或遠端的,甚至是本地的,它不一定是系統上當前活動的伺服器)

$TTY的修改時間會告訴你終端機的空閒時間。 stat -c %Y "$TTY" 是其最後修改時間(以秒為單位),您可以減去 "$(date +%s)" (如果在 GNU 系統上)。

相關內容