1 NOW=`date`
2 MINAGO=$((-1 + `date -d "$NOW" "+%Y%m%d%H:%M:%S" | cut -d: -f2 `))
3 MINAGO=`printf "%02i" $MINAGO`
4 MINAGO=`date -d "$NOW" "+%Y%m%d%H:%M:%S"| sed s/:.*:/$MINAGO/`
5 last -t $MINAGO
- temps de magasin NOW
- maintenant imprimer comme YYYYMMDDHH: MM: SS et extraire MM, ajouter -1, magasin à Minago
pad
- avec des zéros jusqu'à une longueur de 2 (dernière demande -t pour 08 min non 8), magasin à Minago
- temps d'impression dès maintenant et remplacer la partie minute avec Minago, magasin à Minago
- dernier appel avec YYYYMMDDHHMMSS
Vous devrez être plus précis sur ce que vous voulez dire en montrant ceux qui se sont déconnectés, parce que le dernier vous montre qui s'est déconnecté et quand ils l'ont fait. S'ils ne sont pas encore connectés, ils sont sortis. Que devez-vous savoir de plus? Quoi qu'il en soit, il est possible de rechercher des comptes réels dans/etc/shadow et supprimer de ce que les utilisateurs de la liste qui sont encore connectés par exemple:.
getent shadow |sort -t: -k2,2 | awk -F: '($2 !="*") && ($2 !="!") { print $1 }'
garder à l'esprit que seul root peut lire/etc/shadow
rayer ce qui précède;
last -t $(
date -d @$((-60 + `date +%s`)) +%Y%m%d%H%M%S
)
| grep still
par exemple
$ last -t $(date -d @$((-60 + `date +%s`)) +%Y%m%d%H%M%S) | grep still
* pts/4 * Sat Sep 7 02:20 still logged in
* pts/44 * Fri Sep 6 19:08 still logged in
* pts/8 * Fri Sep 6 11:26 still logged in
* pts/32 * Fri Sep 6 09:37 still logged in
* pts/60 * Wed Sep 4 08:06 still logged in
* pts/34 * Tue Sep 3 23:26 still logged in
* pts/5 * Tue Sep 3 12:38 still logged in
* pts/37 * Mon Sep 2 10:59 still logged in
* pts/46 * Sun Sep 1 21:29 still logged in
Quel OS êtes-vous? Dans BSD 'last -t' filtres par TTY, mais vous semblez penser que vous avez un' last' qui peut filtrer par le temps. –
@Nick: Un google rapide trouvé ceci: http://unixhelp.ed.ac.uk/CGI/man-cgi?last –
im le tester sur Ubuntu dernière version. et last -t sur ma page de manuel demande le format YYYYMMDDHHMMSS. –