Как отобразить время, прошедшее с последней загрузки системы, используя «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 цифр точности, вы можете добавить scale = 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».
Адриан Джордж

О, я не знал о времени больше 1 дня!
Ален

Это нормально: теперь у вас есть ответы на это?
Адриан Джордж

Нет простите. uptimeкажется, нет вариантов, но я не мог найти что-либо в сети.
Ален

2

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

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

0

Это отформатирует ваш вывод как заполнение нулями:

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.