Réponses:
Les journaux de connexion sur linux de style redhat sont appelés wtmp
( man wtmp
), stockés dans /var/log/
par défaut, et vous pouvez les récupérer à l'aide de utmpdump
(sur RHEL6).
[root@server ~]# utmpdump /var/log/wtmp* | awk '$4~"root" {print}'
Utmp dump of /var/log/wtmp
[7] [01320] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:31:47 2013 UTC]
[7] [01817] [ts/3] [root ] [pts/3 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:38:22 2013 UTC]
[7] [01690] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Tue Sep 24 00:59:04 2013 UTC]
[7] [23641] [ts/0] [root ] [pts/0 ] [192.168.1.101 ] [192.168.1.101 ] [Wed Sep 25 19:12:44 2013 UTC]
[7] [03020] [ts/0] [root ] [pts/0 ] [192.168.1.100 ] [192.168.1.100 ] [Fri Sep 27 21:33:40 2013 UTC]
...
Il last
peut être utilisé pour réaliser ce que vous essayez de faire. Vous devez ajouter la date à la dernière commande pour extraire les informations.
last | while read line; do date=`date -d "$(echo $line | awk '{ print $5" "$6" "$7 }')" +%s`; [[ $date -ge `date -d "Aug 25 00:00" +%s` && $date -le `date -d "Aug 28 00:00" +%s` ]] && echo $line; done
Toutefois, si vous souhaitez rechercher des informations sur un utilisateur particulier, vous pouvez modifier la dernière commande as last username
puis lui rediriger la while
boucle. Il vous donnerait les informations de connexion d'un utilisateur particulier pour la dernière année.
J'ai testé la commande ci-dessus et elle fonctionne parfaitement bien dans mon système. J'ai pris la commande ci-dessus à partir d' ici .
Vous pouvez modifier la date dans la commande en fonction de vos besoins.
last
commande - mais vous devriez faire plus de recherches que cela, et dans tous les cas, vous n'avez pas réellement spécifié pourquoi lalast
commande n'est pas utile. définissez également "connecté". voulez-vous suivre les connexions de la console? Connexions SSH? Emacs interdis,telnet
connexions? ou tout simplement authentifier avec PAM? soyez précis .