Comment trouver le temps depuis l'installation initiale d'un système Linux, à condition que personne n'ait essayé de le cacher?
Comment trouver le temps depuis l'installation initiale d'un système Linux, à condition que personne n'ait essayé de le cacher?
Réponses:
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.
/dev/sda1
ou quelque chose comme ça (tout ce que df /
montre dans la première colonne), mais le principe est bon.
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:'
tune2fs -l
Il y a quelques dates qui traînent.
Sur Debian ou Ubuntu et leurs dérivés, voyez /var/log/installer/syslog
pour 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.)
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
rpm -qi
fait me donne Install Date: Mon 07 Jul 2014 03:20:44 PM UTC
, alors tune2fs
dit Filesystem created: Sat Dec 20 23:41:41 2014
?
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 touch
fichiers créés par l’extraction d’archives (par exemple, tar -p
pour 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-time
option (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, stat
ces 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 stat
depuis 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 ls
est tabou, mais il ne devrait pas y avoir de fichiers nommés de manière malicieuse /etc
.)
Vous pouvez également utiliser stat
pour 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 %Z
s'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 %W
s'agit de "l'heure de la naissance du fichier". ) ou stat -f %c FILE
(avec BSD).
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.
À 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.
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 :)
Je cherchais un outil similaire, et le mieux que je puisse trouver était ls -lAhF /etc/hostname
simplement 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/hostname
meilleure indication quetune2fs -l /dev/sda1
ls -alct /root
-> le répertoire personnel racine est créé au moment de l'installation
/
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 -c
n'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.)
/root
est susceptible de changer naturellement (par exemple chaque fois que quelqu'un crée un fichier là-bas).
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/
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
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