Connaître la date d'installation d'un système Linux
La date d'installation d'un système Linux est une information difficile à obtenir. Tout d'abord, parce qu'elle n'est enregistrée dans aucun endroit du système. Ensuite, parce que certaines distributions bénéficient de mises à jour régulières, appelées aussi upgrade, qui ont la fâcheuse tendance de remplacer tous les packages et fichiers du système. On ne peut donc plus se fier à certaines informations, comme par exemple, la date d'installation du premier logiciel.
Il existe tout de même une astuce, qui consiste à lister tous les fichiers de configuration du répertoire /etc et à prendre la date la plus ancienne. Après l'avoir testée sur plusieurs machines, cette méthode semble plutôt fiable.
Voici la commande à utiliser :
# ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
jan 17 2006
Une autre astuce assez fiable donnée par zapple en commentaire, consiste à afficher la date de création du système de fichiers à l'aide de la commande tune2fs. A lancer avec le compte root de la machine :
# df / | awk '{print $1}' | grep dev | xargs tune2fs -l | grep create
Filesystem created: Tue Jan 17 20:27:43 2006
Pour les utilisateurs d'Ubuntu, il y a aussi cette commande :
sudo dumpe2fs -h $(df | awk '/\/$/ {print $1}') | grep created
Attention tout de même, ces astuces peuvent ne pas fonctionner si le BIOS n'était pas à l'heure le jour de l'installation. Si vous connaissez d'autres techniques, n'hésitez pas à les partager.
24 Commentaires pour "Connaître la date d'installation d'un système Linux"
Flux des commentaires de cet article Ajouter un commentaireHello,
Cette commande provient du site commandlinefu ?
++
@dcddtc : oui.
Chez moi : mai 21 05:50
C'est la date de création du fichier nscd.conf du /etc
@Tuxargon : en faite, quand le système à été installé dans l'année courrante, la commande affiche uniquement le mois, le jour et l'heure.
Voici un exemple pour un système installé il y a plusieurs années :
Nov 10 2006
Cette méthode est plus efficace chez moi et me retourne la bonne date :
ls -ltr /var/lib/dpkg/info/*.list | head -n 1
@chris : ouai sur un linux à base de Debian... Je le trouve où le répertoire dpkg sur ma Gentoo ? ;-))
Chez moi, ça me dit le 4 juin, ce qui me paraît plausible.
La commande de Chris (sur Ubuntu en fait) me donne le 20 avril. Et ça je sais que c'est trop tôt, c'est normal?
@Mat : effectivement la commande de chris me donne une date de 2007 alors que le serveur que je viens de tester a été installé par mes soins en 2009.
Commande inutile en somme
@dcddtc : Ce n'est pas parce qu'elle est inutile sur ton système qu'elle l'est pour tout le monde... en somme.
@Chris : tout à fait mais avec mat on vient de tester sur une debian et ta commande ne répond pas à la problématique. Voilà
@dcdtc : Conclusion: aucune n'est donc fiable ou assez précise (?)
N'ayant semble t'il pas de méthode "standard", dépendant du système installé, chacun utilisera celle qui lui semble la mieux adaptée...
@Chris @dcdtc : j'ai fait pas mal de recherche avant de publier cette commande, afin de trouver celle qui donne le meilleure résultat. Je suis tomber sur une qui ressemblait fortement à celle de Chris au détour d'un forum.
Je ne l'ai pas garder car elle trop réserver à un seule type de distribution. Néanmoins, quand on rehcrehe la date exacte de l'installation d'un système, on est pas limité à une seule commande et toutes les astuces sont souvent les bienvenues.
Il y a une commande qui permet de donner la date de création d'un File Sytem. Si l'on applique la commande à / qui a été créé à l'installation du système, on a ce qu'on cherche. Voici la commande :
Je précise que tune2fs ne s'applique que pour du ext2/ext3.
En fait, il suffit de taper simplement :
@zapple : pas mal. En faite, j'ai eu un peu cette même idée lors de mes recherches et j'en était arrivé à utiliser la commande stats :
Cette dernière ne donnant pas de résultats fiable, j'avais laissé tombé l'idée. Ta méthode est très bonne, je la rajoute à l'article.
Salut !
je dis peut être une connerie mais dans le fichier de l'historique des commandes, il y a pas un moyen ?? Soit date de création du fichier ou date de la 1ere commande ? Si bien sur le fichier en question n'a pas été touché ... ce qui rend la méthode moins sure :s
@Muy_Bien: l'historique ayant une taille limité (mais réglable) cette technique ne marcherait pas.
Moi je regarde la date de création du filesystem.
Ca marche seulement si c'est du extX.
Salut, priez d'essayer les commandes suivantes :
Salut, je sais que je réagis bien longtemps après la publication de l'article mais je viens de trouver une solution intéressante et globalement plus simple et semble t-il plus précise...
Selon moi une bonne façon de trouver la date d'installation d'une machine linux est d'utiliser la commande passwd avec l'option -S.
Cette option affiche le statut du compte, le troisième champ étant la date du changement de mot de passe précédent. De cette façon, en trouvant la date des utilisateurs qui n'ont jamais changé leur mot de passe, on peut déterminer avec une quasi certitude la date d'installation du système.
Ces utilisateurs peuvent être des utilisateurs du système comme, sys, bin, daemon, etc
J'ai vérifié sur un vieux serveur Debian en prod depuis des années et qui a été upgradé au fil des années...
root@biuintra:~# passwd -S bin
bin L 08/03/2006 0 99999 7 -1
@kawasakid : pas mal comme méthode.
root@computer: ls -lct /etc | tail -1 | awk '{print $6, $7, $8}'
2010-07-01 15:44 wvdial.conf
root@computer: df / | awk '{print $1}' | grep dev | xargs tune2fs -l | grep create
Filesystem created: Thu Jul 1 15:41:28 2010
root@computer: dumpe2fs -h $(df | awk '/\/$/ {print $1}') | grep created
Filesystem created: Thu Jul 1 15:41:28 2010
root@computer: passwd -S bin
bin L 10/29/2008 0 99999 7 -1
donc le passwd -S bin me parait faux
Merci pour les infos
ls -lt /var/log/installer