我想編寫一個腳本來顯示使用者空閒了多少分鐘。自從上次觸碰鍵盤和滑鼠以來。例子:
#!/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 系統上)。