Как отобразить время, прошедшее с последней загрузки системы, с помощью & ldquo; uptime & rdquo ;?

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

17
задан 13 February 2015 в 00:58

6 ответов

Чтобы получить время, прошедшее с последней загрузки системы в формате hh:mm:ss, вы можете использовать: псевдо-файл

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

/proc/uptime содержит два числа:

  • Первое число показывает, как долго система работала в секундах.
  • Второе число показывает, сколько времени машина провела в режиме ожидания в секундах.

Таким образом, используя awk, вы можете взять первое число и преобразовать его в формат hh:mm:ss.

0
ответ дан 13 February 2015 в 00:58

Чтобы узнать время безотказной работы в секундах:

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

Чтобы узнать время безотказной работы в минутах:

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

Чтобы узнать время безотказной работы в часах:

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

Чтобы получить х цифр точности вы можете добавить шкалу = х, например для х = 2

echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
0
ответ дан 13 February 2015 в 00:58

Попробуйте это:

uptime | awk '{ print $3 }'

Фактически, оно печатает третье слово строки, полученной из uptime.

0
ответ дан 13 February 2015 в 00:58

Тривиальная модификация для отображения дней:

awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
0
ответ дан 13 February 2015 в 00:58

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

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
0
ответ дан 23 November 2019 в 02:16

Для простых метрик мне иногда просто нужно INT часов:

#!/usr/bin/env -eux
upsince=$(date +%s -d "$(uptime -s)");
now=$(date +%s);
DIFF=$((now-upsince));
scale=2;

echo $((DIFF / 3600)))

ПРИМЕЧАНИЕ. Вы можете «+ 1» округлить до ближайшего полного часа

0
ответ дан 21 August 2020 в 10:05

Другие вопросы по тегам:

Похожие вопросы: