como verificar quantos minutos se passaram desde que o usuário está ocioso? [fechadas]

1

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.

    
por My_name 25.08.2012 / 09:47

2 respostas

2

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
    
por 25.08.2012 / 10:03
0

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).

    
por 25.08.2012 / 20:51