Comment puis-je savoir depuis combien de temps un système Linux a été installé?

97

Comment trouver le temps depuis l'installation initiale d'un système Linux, à condition que personne n'ait essayé de le cacher?

mattdm
la source
Que veux-tu dire par âge?
Let_Me_Be
@ Let: Le temps depuis qu'il a été mis en place.
1
@Let: Je m'attendais à une réponse du type "vérifiez l'horodatage de / some / oscure / file, il n'est jamais modifié". S'il vous plaît faire que une réponse.
2
N'est-ce pas un peu comme si on demandait l'âge du [navire de Thésée] (en.wikipedia.org/wiki/Ship_of_Theseus)?
Tobu,
2
Lorsque chaque partie d'une installation Linux a été remplacée au fil des ans, l'installation est-elle toujours la même? (Identique à l'analogie originale d'un navire dont toutes les parties ont été lentement remplacées), je le demande parce que ma partition racine a changé de disques et de systèmes de fichiers et que ma partition d'origine est plus ancienne. Certaines appliances sont préparées une fois sous forme d’images Gold, puis obtiennent des noms d’hôte personnalisés, des clés d’hôte ssh et des fu uuids lors du déploiement. Les images Gold peuvent être modifiées et gelées à nouveau, comme la lignée clé en main linux.
Tobu

Réponses:

99
tune2fs -l /dev/sda1 **OR** /dev/sdb1*  | grep 'Filesystem created:'

Cela vous indiquera quand le système de fichiers a été créé.

* = Dans la première colonne de df /vous pouvez trouver la partition exacte à utiliser.

RailOcelot
la source
4
Habituellement /dev/sda1ou quelque chose comme ça (tout ce que df /montre dans la première colonne), mais le principe est bon.
Gilles
1
Hé, c'est pratique à savoir, merci. Et cette information survit aussi lors de la copie du système de fichiers. +1
Faheem Mitha
4
La solution est bonne, mais dépend du système de fichiers et nécessite des privilèges root.
Golem
7
+1 Cependant, je dois noter que mon poste de travail actuel a été créé vers 1994. Tout a été modifié à ce sujet plusieurs fois depuis (y compris les disques et le type de système de fichiers que j'utilise), mais il reste le même système. Au mieux, cette méthode ne me dira que la date du dernier passage à un nouveau système de fichiers.
cas
Cela ne devrait pas être la réponse acceptée car cela ne fonctionne qu'avec ext2 (peut-être jusqu'à ext4?) Que je n'utilise pas.
Soger
23

Vérifiez la date du système de fichiers racine avec dumpe2fs. Je ne vois pas vraiment comment cela pourrait être autre que la date que vous recherchez:

dumpe2fs $(mount | grep 'on \/ ' | awk '{print $1}') | grep 'Filesystem created:'
pboin
la source
1
... outune2fs -l
forcefsck
2
Vous avez oublié de mentionner que cela ne s'applique qu'au système de fichiers ext2 / ext3 / ext4.
Let_Me_Be
Vous obtiendrez une mauvaise date sur plusieurs de mes machines, où j'ai mis à niveau des disques durs et simplement copié l'installation.
derobert
1
@derobert, je pense toujours que ma réponse serait correcte étant donné la question des PO. Un nouveau disque ne diffère pas de la nouvelle RAM - vous avez toujours la même "installation" même si vous avez ajouté un nouveau disque ...
pboin
@pboin Non, lorsque je copie l'installation par dessus, c'est un disque plus volumineux, donc je repartitionne et mkfs (utilisez ensuite tar / cp pour le copier, pas dd). Peut-être même un système de fichiers différent (par exemple, ext2 -> ext3 -> ext4) Ainsi, vous obtiendrez l'heure à laquelle j'ai copié l'installation. Voilà comment cela pourrait être autre que la date recherchée par OP.
derobert
16

Il y a quelques dates qui traînent.

  • Tous les fichiers ont des dates.
  • Les fichiers journaux ont des dates.

Sur Debian ou Ubuntu et leurs dérivés, voyez /var/log/installer/syslogpour la réponse définitive si elle existe, cela fait partie du journal de l’instillation.

Mais attention, ce n'est pas garanti. (Voir autres réponses / commentaires pour certaines des raisons pour lesquelles cela peut ne pas fonctionner.)

ctrl-alt-delor
la source
Cela pourrait cependant être spécifique à Debian / Ubuntu.
Faheem Mitha
@Faheem Mitha: Le même fichier / répertoire est utilisé pour Ubuntu.
BillThor
1
@ Bill: Oui, j'ai dit spécifique à Debian / Ubuntu. Cela signifie que la recette fonctionnerait à la fois pour Debian et Ubuntu, mais peut-être pas pour d'autres distributions Linux (non basées sur Debian).
Faheem Mitha
Mais tous les fichiers n'ont pas de date de création. Autant que je sache, la date de naissance n’a été introduite que dans ext4, et ce n’est de toute façon pas POSIX.
Konrad Gajewski
@KonradGajewski Mais cette réponse, ou n'importe lequel de ses commentaires, mentionne la date de création du fichier.
ctrl-alt-delor
12

Sur les distributions basées sur Red Hat (par exemple, CentOS, Scientific, Oracle, etc.), vous pouvez utiliser:

rpm -qi basesystem
Name        : basesystem
Version     : 10.0
Release     : 7.el7
Architecture: noarch
Install Date: Mon 02 May 2016 19:20:58 BST
Group       : System Environment/Base
Size        : 0
License     : Public Domain
Signature   : RSA/SHA256, Tue 01 Apr 2014 14:23:16 BST, Key ID     199e2f91fd431d51
Source RPM  : basesystem-10.0-7.el7.src.rpm
Build Date  : Fri 27 Dec 2013 17:22:15 GMT
Build Host  : ppc-015.build.eng.bos.redhat.com
Relocations : (not relocatable)
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Vendor      : Red Hat, Inc.
Summary     : The skeleton package which defines a simple Red Hat Enterprise Linux system
Description :
Basesystem defines the components of a basic Red Hat Enterprise Linux
system (for example, the package installation order to use during
bootstrapping). Basesystem should be in every installation of a system,
and it should never be removed.

ou

rpm -q basesystem --qf '%{installtime:date}\n'
Mon 02 May 2016 19:20:58 BST
el_viejillo
la source
1
Comment se rpm -qifait me donne Install Date: Mon 07 Jul 2014 03:20:44 PM UTC, alors tune2fsdit Filesystem created: Sat Dec 20 23:41:41 2014?
Benjamin le
Sur ma VM Azure ont tous en même temps, donc rpm n'est pas fiable du tout
Chris
10

La solution la plus neutre vis-à-vis du système de fichiers et de la distribution (que je peux trouver) consiste à utiliser le fichier le plus ancien donné par ls -lact /etc, qui examine les métadonnées de chaque fichier pour la date de création. Bien que cela puisse être joué, il n’est pas affecté par les touchfichiers créés par l’extraction d’archives (par exemple, tar -ppour préserver l’horodatage).

Je pense qu'il est préférable de regarder des fichiers plutôt que des répertoires depuis les répertoires ne changent leurs métadonnées temps de création lorsque leur contenu change (peut - être quelqu'un peut faire la lumière sur pourquoi?)

ls -lact --full-time /etc |tail

Les systèmes dépourvus de GNU Coreutils devraient supprimer cette --full-timeoption (l'ordre de tri sera toujours correct et vous obtiendrez toujours le jour). Vous pouvez obtenir l'heure de création à partir des métadonnées d'un fichier avec stat FILE |grep Change(exécutez cela sur le fichier le plus ancien répertorié par ls -lact).

Sur d'autres systèmes non Linux, statces informations sont probablement sous une disposition légèrement différente, nécessitant éventuellement des indicateurs différents. Notez que cela utilise toujours les métadonnées du fichier et que la précision n'est pas garantie.

Notez également que statdepuis GNU, Coreutils a une heure de "naissance" qui a tendance à être fausse (Linux avec des rendements ext40 indiquant qu’il est inconnu, FreeBSD avec UFS a montré une heure de "naissance" plus ancienne que le système que je demandais). La valeur correcte a été indiquée comme heure de "changement".

Si vous voulez avoir l’imagination et obtenir uniquement le temps de création du fichier le plus ancien dans /etc:

ls -lact --full-time /etc |awk 'END {print $6,$7,$8}'

Cette commande a fonctionné pour moi sur un ancien système FreeBSD (UFS, pas d'utilitaire GNU):

stat "/etc/$(ls -act /etc |tail -1)" |awk -F\" '{print $6}'

(Oui, cette analyse lsest tabou, mais il ne devrait pas y avoir de fichiers nommés de manière malicieuse /etc.)

Vous pouvez également utiliser statpour obtenir d'autres formats de temps. Par exemple, pour obtenir l'heure de création dans l' époque Unix : stat -c %Z FILE(avec GNU, notez qu'il %Zs'agit de "l'heure du dernier changement d'état", mais qu'il s'agit du drapeau correct pour mes systèmes Linux et BSD, comme indiqué ci-dessus; il %Ws'agit de "l'heure de la naissance du fichier". ) ou stat -f %c FILE(avec BSD).

Adam Katz
la source
6

Dans Fedora, le programme d’installation d’Anaconda enregistre les détails de la configuration de votre installation dans le dossier d’accueil de la racine, ce qui peut vous donner une idée.

Sur Debian (du moins les plus récentes), plusieurs journaux de l’installation sont stockés dans /var/log/installer/. Les anciennes versions les stockaient dans /var/log/installer.*. C'est au moins de retour en 2003.

rajaganesh87
la source
4

À la demande de l'OP.

Si vous recherchez l'heure à laquelle le système a été configuré, il n'existe aucun moyen de le déterminer. D'une part, le système peut avoir été cloné (non installé), ce qui simulerait efficacement le temps de création du fichier.

Vous pouvez estimer l'âge en recherchant les fichiers les plus anciens.

Laisse-moi tranquille
la source
mattdm a raison; vous pouvez obtenir l'heure d'accès, l'heure de modification et l'heure de changement; ctime est le dernier. Voir cet
Michael Mrozek
4
ls -alct /|tail -1|awk '{print $6, $7, $8}'
altmas5
la source
2

Je regarde le fichier le plus ancien dans / boot (en haut de "ls -ltr / boot". Il existe souvent un secteur de démarrage original depuis la première installation. Sur mon ancien système, cela donne la date d'installation d'origine, bien que tout ait été remplacé la machine et copié le contenu du système de fichiers à plusieurs reprises :)

pjc50
la source
2

Je cherchais un outil similaire, et le mieux que je puisse trouver était ls -lAhF /etc/hostnamesimplement l'âge du fichier de nom d'hôte. Je pense que, généralement, le nom d’hôte d’un système est défini au début et reste inchangé pendant la durée de vie du système. La date de création du système de fichiers est certes utile, mais peut être trompeuse. Par exemple, j’utilise souvent l’image de machine virtuelle, que j’ai installée il ya quelque temps, la copie, change le nom d’hôte et en crée un nouveau serveur. Par conséquent, dans mon cas, /etc/hostnamemeilleure indication quetune2fs -l /dev/sda1

utilisateur1968963
la source
1

Si vous avez utilisé LVM lors de l'installation, vous pouvez vérifier la date de création d'un volume logique effectuée le jour de l'installation, par exemple:

$ sudo lvdisplay /dev/mapper/KUbuntu_VG-rootFS | grep Creation
  LV Creation host, time kubuntu, 2014-12-28 20:52:15 +0100
SebMa
la source
0

ls -alct /root -> le répertoire personnel racine est créé au moment de l'installation

jet
la source
1
Mais cela aurait peut-être changé par la suite. La durée /est légèrement moins susceptible d'avoir changé si le noyau n'est pas conservé /, mais ce n'est toujours pas un très bon indicateur. (Rappel: ce -cn'est pas l'heure de création, c'est l'heure de changement des métadonnées. La plupart des systèmes de fichiers Unix ne stockent pas l'heure de création d'un fichier.)
Gilles
montre-moi toute heure qui ne peut pas être changée :)
jet
La question avait l'hypothèse "à condition que personne n'ait essayé de la cacher". Le temps de /rootest susceptible de changer naturellement (par exemple chaque fois que quelqu'un crée un fichier là-bas).
Gilles
0

Depuis un certain temps, j’installe généralement à la fois la distribution linux et un paquet appelé Tuptime , qui contient des statistiques utiles sur le temps d’exécution, les démarrages, les arrêts ...

Pour vos questions, la ligne "Vie du système" contient cette information. À titre d'exemple:

System startups:    110   since   10:15:27 08/08/15
System shutdowns:   107 ok   -   2 bad
System uptime:      4.04 %   -   1 days, 22 hours, 4 minutes and 44 seconds
System downtime:    95.96 %   -   45 days, 13 hours, 57 minutes and 30 seconds
System life:        47 days, 12 hours, 2 minutes and 15 seconds

Largest uptime:     2 hours, 10 minutes and 44 seconds   from   20:49:17 09/08/15
Shortest uptime:    9 seconds   from   10:23:36 08/08/15
Average uptime:     25 minutes and 8 seconds

Largest downtime:   7 days, 10 hours, 17 minutes and 26 seconds   from   06:09:45 10/08/15
Shortest downtime:  15 seconds   from   19:27:24 19/09/15
Average downtime:   9 hours, 56 minutes and 42 seconds

Current uptime:     23 minutes and 33 seconds   since   21:54:09 24/09/15

Plus d'infos: https://github.com/rfrail3/tuptime/

Rfraile
la source
0

C'est une autre façon

# rpm -q -last basesystem
basesystem-10.0-7.el7.noarch                  Tue 11 Jul 2017 03:57:52 PM UTC
Shirish Shukla
la source
-4

J'ai trouvé un fichier simple. nom "1". Peut-être est le premier fichier.

▶ ls -lact --full-time /1
-rw-r--r--. 1 root root 0 2017-03-23 12:02:46.880994133 +0800 /1
utopic eexpress
la source
pourquoi downvote. Cette heure est vraiment indiquer la dernière heure d’installation du système.
Utopic eexpress
Je n'ai pas ce fichier sur mon Linux.
Kevin Lemaire