Zdaję sobie sprawę z uptime
polecenia, ale zwraca ono sekundy po uruchomieniu, więc jeśli odejmę tę liczbę od bieżącego znacznika czasu, teoretycznie mogę uzyskać inny wynik, jeśli sekunda zmieni się po przeczytaniu czasu działania i aktualnego znacznika czasu. uptime -s
jest to, czego chcę, ale nie jest dostępne w centach (jak to jest obliczane btw?). Czy mogę dostać ctime z / proc dir? Wydaje mi się, że to daje mi odpowiednią liczbę, ale zastanawiam się, czy każdy system linuksowy ma / proc utworzony podczas rozruchu.
13
HH:MM:SS
? Coś innego?Odpowiedzi:
Przede wszystkim
crtime
jest trudny w Linuksie . To powiedziawszy, prowadzenie czegoś takiegolub
jest prawdopodobnie dokładnie tym, czego potrzebujesz. System
/proc
plików jest zdefiniowany przez standard LFS i powinien być dostępny dla każdego systemu Linux, a także dla większości (wszystkich?) Systemów UNIXen.Alternatywnie, zakładając, że tak naprawdę nie potrzebujesz precyzji sekund, ale potrzebujesz tylko znacznika czasu, możesz użyć
who
:Od
man who
: -b, - czas rozruchu ostatniego uruchomienia systemuMożesz to przekonwertować na sekundy od epoki za pomocą GNU
date
:źródło
utmp
(przez init) jako pozycja „rozruchu systemu” i czytany przezwho -b
. Czas systemowy może być niepoprawny do momentu dobrego uruchomienia.who -b
na moim rPi mówi, że uruchomił się w 1970 roku, a inny ARM bez RTC mówi 2008 ;-)Innym rozwiązaniem jest
/proc/stat
„sbtime
: [1]Przykładowe dane wyjściowe:
Jest to znacznik czasu sprzed epoki.
[1] http://man7.org/linux/man-pages/man5/proc.5.html
źródło