TUTOS.EU

La blague du fichier lastlog énorme sous Linux

Ce jour je me suis retrouvé avec un système dans les choux avec un /var/log saturé

En regardant son contenu je vois un énorme fichier lastlog de 162G,
sauf que mon /var/log a une capacité de 5G, du coup c'est ... étrange

Surtout que si on regarde sa taille avec la commande du, cela me donne une taille de 44K ...

du -sh lastlog
Lien vers le fichier : cliquez ici

sur https://www.ibm.com/support/pages/why-lastlog-file-my-server-so-large
on apprend que c'est un 'sparse file', un fichier particulier qui montre une taille "potentielle", cad celle où il aurait un maximum de users, cad dans les 2^32.
On retrouve la même info sur https://man7.org/linux/man-pages/man8/lastlog.8.html

 

The lastlog file is a database which contains info on the last login of each user. You should not rotate it. It is a sparse file, so its size on the disk is usually much smaller than the one shown by "ls -l" (which can indicate a really big file if you have in passwd users with a high UID).

You can display its real size with "ls -s".

 

Du coup il ne faut pas vraiment tenir compte de cette taille et l'espace disque mangé est ailleur.

Des comptes utilisateurs avec un UID elevé peut cependant jouer sur la taille du fichier.

Sur https://kb.vmware.com/s/article/1025579 on apprend quand même que le fichier peut être corrompu.
On peut en faire une copie avec la commande cp puis le purger/recréer avec

> /var/log/lastlog
Lien vers le fichier : cliquez ici

Quelques secondes après le fichier refaisait 162G.

Pour vérifier si j'ai un éventuel user avec un UID élevé, je tape

getent passwd
Lien vers le fichier : cliquez ici

Je vois un nfsnobody en 65534. Comme il n'était pas utilisé, je l'ai supprimé, j'ai repurgé lastlog et au cas où relancé rsyslog mais cela n'a servi à rien.
Sur ma machine lastlog est resté énorme et l'espace disque manquant venait en fait d'archives de /var/log/messages