Comment afficher le temps écoulé depuis le dernier démarrage du système en utilisant «uptime»?


17

Je veux afficher le temps écoulé depuis le dernier démarrage du système à l'aide uptime, mais je ne veux pas qu'il affiche toutes ces informations. Je veux juste savoir combien d'heures se sont écoulées depuis le dernier démarrage du système (ex: 18:17:59)

Réponses:


31

Pour obtenir le temps écoulé depuis le dernier démarrage du système au hh:mm:ssformat, vous pouvez utiliser:

awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime

/proc/uptime le pseudo-fichier contient deux nombres:

  • Le premier nombre correspond à la durée de fonctionnement du système en secondes.
  • Le deuxième nombre correspond à la durée de fonctionnement de la machine en secondes.

Donc, en utilisant, awkvous pouvez prendre votre premier nombre et le convertir au hh:mm:ssformat.


15

Pour obtenir une disponibilité en quelques secondes:

awk '{print $1}' /proc/uptime

Pour obtenir une disponibilité en quelques minutes:

 echo $(awk '{print $1}' /proc/uptime) / 60 | bc

Pour obtenir une disponibilité en heures:

 echo $(awk '{print $1}' /proc/uptime) / 3600 | bc

Pour obtenir x chiffres de précision, vous pouvez ajouter scale = x, par exemple pour x = 2

echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc

2

Essaye celui-là:

uptime | awk '{ print $3 }'

En fait, il imprime le troisième mot de la ligne produite par uptime.


3
Ça marche. Mais cela ne semble pas être la bonne façon de procéder. Que faire si le troisième mot n'est pas le moment, par exemple mon troisième mot est "4", car ma machine fonctionne pendant 4 jours. Voici ce que j'obtiens: "02:00:39 jusqu'à 4 jours, 12:54, 2 utilisateurs, charge moyenne: 0,03. 0,06, 0,06".
Adrian George

Oh: DI ne savait pas l'heure plus d'un jour!
Alen

Ça va: d maintenant tu as des réponses à ça?
Adrian George

Non désolé. uptimesemble n'avoir aucune option mais je n'ai rien trouvé non plus sur le net.
Alen

2

Une modification triviale pour montrer les jours:

awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime

0

Cela formatera votre sortie en 2 zéros:

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.