Wie kann ich die seit dem letzten Systemstart verstrichene Zeit mit "Uptime" anzeigen?


17

Ich möchte die seit dem letzten Systemstart verstrichene Zeit mit anzeigen, möchte uptimeaber nicht, dass alle Informationen angezeigt werden. Ich möchte nur wissen, wie viele Stunden seit dem letzten Systemstart vergangen sind (dh: 18:17:59)

Antworten:


31

Um die seit dem letzten Systemstart verstrichene Zeit im hh:mm:ssFormat zu ermitteln, können Sie Folgendes verwenden:

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

/proc/uptime Pseudodatei enthält zwei Zahlen:

  • Die erste Zahl gibt an, wie lange das System in Sekunden aktiv war.
  • Die zweite Zahl gibt an, wie viel Zeit die Maschine in Sekunden im Leerlauf verbracht hat.

Wenn awkSie also verwenden, können Sie die erste Zahl nehmen und in ein hh:mm:ssFormat konvertieren .


15

So erreichen Sie die Betriebszeit in Sekunden:

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

So erreichen Sie die Betriebszeit in Minuten:

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

So erreichen Sie die Betriebszeit in Stunden:

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

Um x Stellen mit Genauigkeit zu erhalten, können Sie scale = x hinzufügen, z. B. für x = 2

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

2

Probier diese:

uptime | awk '{ print $3 }'

Tatsächlich wird das dritte Wort der von erzeugten Zeile gedruckt uptime.


3
Es klappt. Aber es scheint nicht der richtige Weg zu sein. Was ist, wenn das dritte Wort nicht die Uhrzeit ist? Mein drittes Wort ist beispielsweise "4", da meine Maschine 4 Tage lang läuft. Folgendes erhalte ich: "02:00:39 bis 4 Tage, 12:54, 2 Benutzer, Lastdurchschnitt: 0,03. 0,06, 0,06".
Adrian George

Oh: DI wusste nicht mehr als 1 Tag über die Zeit!
Alen

Ist es in Ordnung: Hast du jetzt einige Antworten darauf?
Adrian George

Nein Entschuldigung. uptimescheint keine Optionen zu haben, aber ich konnte auch nichts im Netz finden.
Alen

2

Eine triviale Modifikation, um Tage anzuzeigen:

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

0

Dies formatiert Ihre Ausgabe als 2-Null-Auffüllung:

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.