Commande «Last»: comment afficher la dernière connexion utilisateur?

19

Comme je le sais, la lastcommande affiche les connexions récentes de tous les utilisateurs. Mais mon PC (CentOS) est utilisé depuis environ un an et de nombreux utilisateurs sont connectés. J'ai essayé d'utiliser la lastcommande, mais elle ne s'est montrée que de juin 2013 à septembre 2013.

Ma question est: comment puis-je montrer les derniers utilisateurs qui se sont connectés récemment, disons (décembre 2013 à janvier 2014)?

Thomas
la source
Pourriez-vous vérifier si le /var/log/wtmpfichier est présent et sa dernière modification à l'aide stat.
mkc
Notez également que les dernières entrées dans la sortie de la dernière commande seraient en haut.
mkc
de toute façon pour descendre au fond?
Thomas
1
Essayezlast | tac
mkc
1
faites juste une statistique:stat /var/log/wtmp
mkc

Réponses:

15

lastlit à partir d'un fichier journal, généralement /var/log/wtmpet imprime les entrées des tentatives de connexion réussies effectuées par les utilisateurs dans le passé. La sortie est telle que la dernière entrée des utilisateurs connectés apparaît en haut. Dans votre cas, il est peut-être passé inaperçu à cause de cela.

Afin de vérifier quand le fichier a /var/log/wtmpété écrit en dernier, vous pouvez utiliser la statcommande:

stat /var/log/wtmp

Pour imprimer la sortie en sens inverse, vous pouvez diriger la sortie de last vers GNU tac(opposé à cat) comme suit:

last | tac
mkc
la source
16

Vous pouvez également utiliser la commande lastlogcommand sur Linux. Il vous donne des contrôles plus précis quant aux plages de dates lorsque vous parcourez les journaux des connexions utilisateur.

extrait de la page de manuel lastlog

   lastlog - reports the most recent login of all users or of a given user

Exemple

Pour connaître les utilisateurs qui se sont connectés à un système au cours des 100 derniers jours.

$ lastlog -b 0 -t 100
Username         Port     From             Latest
sam              pts/0    pegasus          Wed Jan  8 20:32:25 -0500 2014
joe              pts/0    192.168.1.105    Thu Dec 12 12:47:11 -0500 2013

Cela montre que la dernière fois que ces utilisateurs se sont connectés à ce système. La plage de temps affiche les 100 derniers jours. Avant aujourd'hui ( -b 0) et après il y a 100 jours ( -t 100).

Vous pouvez également afficher tous les utilisateurs en omettant n'importe quelle plage et en voyant simplement tous les utilisateurs qui se sont connectés, et la dernière fois qu'ils se sont connectés.

slm
la source
0

Vous pouvez essayer ce script:

for user in $( awk -F: '{ print $1}' /etc/passwd)
do
lastlog=$(sudo lsuser -a time_last_login $user | awk -F'=' '{print $NF}')
echo "$user         \c"; perl -le "print scalar localtime($lastlog);"
done
Stephen Kitt
la source
1
Bienvenue sur Unix.SE. Pourriez-vous expliquer les avantages de cette approche par rapport aux réponses existantes, le cas échéant?
Stephen Kitt
ce script donnera l'horodatage du dernier journal pour tous les utilisateurs sous UNIX (AIX)
Merci pour l'info; veuillez modifier votre réponse pour le mentionner. Notez également que la question concerne CentOS, pas AIX.
Stephen Kitt