1 votes

comment vérifier combien de minutes se sont écoulées depuis que l'utilisateur est inactif ?

Je veux écrire un script qui montrera combien de minutes l'utilisateur est inactif. Depuis la dernière touche du clavier et de la souris. Exemple :

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

結果

L'ordinateur/utilisateur est inactif pendant 1 minute.

L'ordinateur/utilisateur est inactif pendant 2 minutes.

...

L'ordinateur/utilisateur est inactif pendant 5 minutes.

...

On peut faire ça ? Cela peut être en Bash, Python, etc.

2voto

Cameron Points 1075

La commande "w" devrait vous aider, à partir de la page de manuel :

w - Montre qui est connecté et ce qu'il fait.

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

0voto

sch Points 550

Le clavier et la souris ne sont pas un concept clair sur un système multi-utilisateurs, où il peut y avoir plusieurs serveurs X fonctionnant sur la machine, certains connectés à un ou plusieurs claviers ou souris physiques, d'autres non, ou des serveurs X distants auxquels les terminaux fonctionnant sur la machine se connectent, ou des shells bash fonctionnant sur ssh et beaucoup d'autres façons pour "bash" de prendre les entrées d'un utilisateur...

La commande "xprintidle" vous donnera le temps d'inactivité du serveur X auquel vous êtes connecté (ce serveur X peut être local ou distant, même local, il n'est pas nécessairement celui qui est actif sur le système).

Le temps de modification de $TTY vous indiquera le temps d'inactivité du terminal. stat -c %Y "$TTY" est son heure de dernière modification en secondes, que vous pouvez soustraire de "$(date +%s)" (si vous êtes sur un système GNU).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X