Як відобразити час, що минув з моменту останнього завантаження системи, використовуючи “uptime”?


17

Я хочу відобразити час, що минув з моменту останнього завантаження системи uptime, але я не хочу, щоб вона відображала всю цю інформацію. Я просто хочу знати, скільки годин минуло з часу останнього завантаження системи (тобто: 18:17:59)

Відповіді:


31

Щоб отримати час від останнього завантаження системи у hh:mm:ssформаті, ви можете використовувати:

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

/proc/uptime псевдофайл містить два числа:

  • Перше число - це тривалість роботи системи в секундах.
  • Друге число - це кількість часу, коли машина витратила в режимі очікування в секундах.

Отже, використовуючи awkви можете взяти номер ялинки та перетворити його у hh:mm:ssформат.


15

Щоб отримати час роботи за лічені секунди:

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

Щоб отримати час роботи за лічені хвилини:

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

Щоб отримати час роботи за години:

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

Для отримання x цифр точності можна додати шкалу = x, наприклад, для x = 2

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

2

Спробуйте це:

uptime | awk '{ print $3 }'

Насправді він друкує третє слово рядка, створене компанією uptime.


3
Це працює. Але це здається не правильним. Що робити, якщо третє слово не час, наприклад моє третє слово "4", тому що моя машина працює 4 дні. Ось що я отримую: "02:00:39 до 4 днів, 12:54, 2 користувачі, середнє завантаження: 0,03. 0,06, 0,06".
Адріан Джордж

О: DI не знав про час більше 1 дня!
Ален

Це нормально: зараз у вас є відповіді на це?
Адріан Джордж

Ні вибач. uptimeЗдається, немає жодних варіантів, але я нічого не зміг знайти в мережі.
Ален

2

Тривіальна модифікація для показу днів:

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

0

Це відформатує ваш вихід у вигляді 2 нульових накладок:

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.