O comando "w" deve ajudar na página man:
w - Mostra quem está conectado e o que está fazendo.
# w | awk '{if (NR!=1) {print $1,$5 }}'
USER IDLE
root 0.00s
Eu quero escrever um script que mostrará quantos minutos o usuário está ocioso. Desde o último toque do teclado e mouse. Exemplo:
#!/bin/bash
while true
do
command_lines...
...
sleep 60
echo $var
done
Resultado:
The computer/user is idle for 1 minute.
The computer/user is idle for 2 minute.
...
The computer/user is idle for 5 minute.
...
Podemos fazer isso? Pode ser em Bash, Python, etc.
O comando "w" deve ajudar na página man:
w - Mostra quem está conectado e o que está fazendo.
# w | awk '{if (NR!=1) {print $1,$5 }}'
USER IDLE
root 0.00s
Teclado e mouse não são um conceito claro em um sistema multiusuário, onde pode haver vários servidores X em execução na máquina, alguns conectados a um ou mais teclados ou mouses físicos, alguns não, ou servidores X remotos onde os terminais são executados a máquina se conecta a, ou lança shells rodando sobre o ssh e muitas outras maneiras de "bash" receber informações de um usuário ...
O "xprintidle" lhe dará o tempo ocioso do servidor X ao qual você está conectado (aquele servidor X pode ser local ou remoto, mesmo local, pode não ser necessariamente o servidor atualmente ativo no sistema)
O tempo de modificação de $ TTY informa o tempo ocioso do terminal. stat -c% Y "$ TTY" é o último tempo de modificação em segundos, que você pode subtrair "$ (date +% s)" (se estiver em um sistema GNU).