Jak wyświetlić czas, jaki upłynął od ostatniego uruchomienia systemu przy użyciu „uptime”?


17

Chcę wyświetlić czas, jaki upłynął od ostatniego uruchomienia systemu uptime, ale nie chcę, aby wyświetlał wszystkie te informacje. Chcę tylko wiedzieć, ile godzin minęło od ostatniego uruchomienia systemu (tj .: 18:17:59)

Odpowiedzi:


31

Aby uzyskać czas, jaki upłynął od ostatniego uruchomienia systemu w hh:mm:ssformacie, możesz użyć:

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

/proc/uptime pseudoplik zawiera dwie liczby:

  • Pierwszą liczbą jest czas działania systemu w sekundach.
  • Druga liczba określa, ile czasu maszyna spędziła bezczynnie w kilka sekund.

Tak więc, używając awkmożesz wziąć numer jodły i przekonwertować go w hh:mm:ssformacie.


15

Aby uzyskać czas sprawności w ciągu kilku sekund:

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

Aby uzyskać czas bezczynności w kilka minut:

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

Aby uzyskać czas pracy w godzinach:

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

Aby uzyskać x cyfr dokładności, możesz dodać skalę = x, np. Dla x = 2

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

2

Spróbuj tego:

uptime | awk '{ print $3 }'

W rzeczywistości wypisuje trzecie słowo linii wyprodukowanej przez uptime.


3
To działa. Ale to nie wydaje się właściwym sposobem na zrobienie tego. Co jeśli trzecie słowo nie jest czasem, na przykład moje trzecie słowo to „4”, ponieważ moja maszyna działa przez 4 dni. Oto, co otrzymuję: „02:00:39 do 4 dni, 12:54, 2 użytkowników, średnia ładowanie: 0,03. 0,06, 0,06”.
Adrian George,

Och: DI nie wiedziałem o czasie dłużej niż 1 dzień!
Alen

W porządku: d teraz masz jakieś odpowiedzi na to pytanie?
Adrian George

Nie przepraszam uptimeWygląda na to, że nie mam opcji, ale nie mogłem znaleźć niczego w sieci.
Alen

2

Trywialna modyfikacja pokazująca dni:

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

0

Spowoduje to sformatowanie danych wyjściowych jako wypełnienie 2 zerami:

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.