Question Comment extraire l'historique de connexion?


J'ai besoin de connaître l'historique de connexion pour un utilisateur spécifique (c'est-à-dire le temps de connexion et de déconnexion), Comment extraire cet historique pour une plage de dates spécifique sous Linux?


80
2017-08-28 08:00


origine




Réponses:


Vous pouvez essayer le last commander:

last john 

Il affiche l'historique de connexion / déconnexion de l'utilisateur john. Alors que courir juste

last

affiche l'historique de connexion / sortie de tous les utilisateurs.


115
2017-08-28 08:11



Cela ne renvoie que les valeurs du mois en cours dans la plupart des distributions Linux. - ewwhite


Si vous avez besoin de remonter plus d’un mois dans l’histoire, vous pouvez lire le /var/log/wtmp.1 déposer avec le last commander.

last -f wtmp.1 john affichera l'historique des connexions du mois précédent pour l'utilisateur john.

La dernière sortie du journal n'est pas trop lourde et relativement facile à analyser, je vais donc probablement diriger la sortie vers grep pour rechercher un modèle de date spécifique.

last john | grep -E 'Aug (2[0-9]|30) ' montrer 20-30 août. Ou quelque chose comme:

last -f /var/log/wtmp.1 john | grep -E 'Jul (1[0-9]|2[0-9]|30) ' acquérir du 10 au 30 juillet pour l'utilisateur john.


39
2017-08-28 08:54





Comment extraire l'historique de connexion pour une plage de dates spécifique sous Linux?

Un exemple pour lister tous les utilisateurs connectés du 25 au 28 août:

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
  • awk '{ print $5" "$6" "$7 }' extraire la date et l'heure dans la colonne correspondante de last sortie
  • +%s convertir date / heure en époque
  • -ge représenter plus grand ou égal
  • -le représenter moins ou égal

Vous pouvez également le faire pour un utilisateur spécifique avec last <username>.


17
2017-08-28 08:50



C'est une expression très laide. Grep ne serait-il pas plus propre depuis last la sortie est assez lisible? - ewwhite
Peut tu grep de "15 août à 09h00" au "25 août à 21h00"? - quanta
Le PO n'a pas demandé d'intervalle de temps. - ewwhite
@ewwhite l'expression me semble magnifique, si vous n'aimez pas l'apparence de la syntaxe bash, ce n'est peut-être pas le site pour vous. - ekerner
@ekerner Vous avez raison. Je vais aller ailleurs;) - ewwhite