Я хочу відобразити час, що минув з моменту останнього завантаження системи uptime, але я не хочу, щоб вона відображала всю цю інформацію. Я просто хочу знати, скільки годин минуло з часу останнього завантаження системи (тобто: 18:17:59)
Я хочу відобразити час, що минув з моменту останнього завантаження системи uptime, але я не хочу, щоб вона відображала всю цю інформацію. Я просто хочу знати, скільки годин минуло з часу останнього завантаження системи (тобто: 18:17:59)
Відповіді:
Щоб отримати час від останнього завантаження системи у hh:mm:ssформаті, ви можете використовувати:
awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
/proc/uptime псевдофайл містить два числа:
Отже, використовуючи awkви можете взяти номер ялинки та перетворити його у hh:mm:ssформат.
Щоб отримати час роботи за лічені секунди:
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
Спробуйте це:
uptime | awk '{ print $3 }'
Насправді він друкує третє слово рядка, створене компанією uptime.
uptimeЗдається, немає жодних варіантів, але я нічого не зміг знайти в мережі.
Тривіальна модифікація для показу днів:
awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime