48 votes

Obtenir la date et l'heure du démarrage du système sous Linux

Je sais que uptime imprime la durée de fonctionnement d'une machine, mais existe-t-il un moyen plus simple (fiable) d'obtenir la date de démarrage que de compter à rebours à partir de cette sortie ?

J'ai essayé de regarder autour de moi /proc mais n'a rien trouvé de pertinent. Il y a aussi une ligne comme celle-ci sur mon dmesg :

[    0.673492] rtc_cmos rtc_cmos: setting system clock to 2011-03-14 14:26:52 UTC (1300112812)

Mais je me demande si cette méthode est indépendante de la distribution et de la version du noyau.

43voto

Lin Points 230

J'ai trouvé quelques commandes aquí . Essayer who -b o last reboot | head -1 .
who donne des dates numériques, tandis que last reboot renvoie les noms abrégés du jour et du mois.

25voto

sam hocevar Points 1319

Cette fonction interroge le noyau sur l'heure actuelle et l'affiche dans le fuseau horaire local :

date -d "`cut -f1 -d. /proc/uptime` seconds ago"

Soyez prudent avec les autres options. Les last cessera de fonctionner dès que la commande wtmp a été tourné. Les who dépend de la disponibilité et de l'intégrité des utmp . Et /proc/1 peut contenir la date du jour au lieu de la date de démarrage, et peut même être indisponible sur un système renforcé. Éditer : dmesg n'a qu'un tampon arrière de longueur fixe, et n'est donc pas réaliable non plus. Les journaux du noyau peuvent se trouver dans /var/log mais la plupart des distributions n'en conservent que 8 semaines.

21voto

user176767 Points 21

Je suis tombé sur cette question alors que je cherchais un moyen d'obtenir un fichier temps de démarrage par opposition à temps écoulé depuis le démarrage qui change à chaque appel.

Il apparaît que uptime -s fera l'affaire sur la plupart des systèmes linux.

12voto

Ramy Points 11

J'ai trouvé le btime ligne dans /proc/stat en fouillant un peu

cat /proc/stat | grep btime | awk '{ print $2 }'

et après une recherche rapide, j'ai trouvé cette page : /proc/stat expliqué qui décrit les "Diverses informations sur l'activité du noyau qui sont disponibles dans la base de données du /proc/stat dossier".

La ligne "btime" indique l'heure à laquelle le système a démarré, en secondes depuis l'époque l'époque d'Unix.

8voto

Rajapandian Points 2157
  • bon : uptime -s , who -b ou l'analyse syntaxique /proc/uptime
  • mauvais : ls -ld /proc/1 et ses variantes.

N'utilisez pas ls -ld /proc/1 à cette fin. Il est parfois mis à jour après s2disk ou s2ram.

Dans mon cas, who -b a déclaré :

démarrage du système 2 mai 09:51

Tandis que ls -ld /proc/1 :

dr-xr-xr-x 7 root root 0 May 3 13:09 /proc/1

ls -ld pour /proc o /sys semblent persister après la reprise, mais cela dépend de l'implémentation et peut changer à l'avenir, alors n'utilisez pas ces méthodes. Et si votre l'horloge du système est à l'heure locale et non à l'heure UTC ils ont un décalage négatif.

(Je n'ai pas encore le privilège de commenter les réponses, j'ai donc ouvert une nouvelle réponse. Désolé.)

EDITAR: uptime -s a été répondu pour la première fois dans cette réponse par mikegreiling

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X