Общее время работы машины

man shutdown (8) говорит:

Первым аргументом может быть последовательность времени (обычно «now»).

Время последовательности может иметь формат «чч: мм» для часа/минут, указывающий время завершения работы в, указанное в формате 24 часов. В качестве альтернативы он может иметь синтаксис «+ m», относящийся к указанному количеству минут через m. «now» является псевдонимом для «+ 0», т.е. для запуска немедленного отключения. Если аргумент времени не указан, подразумевается «+ 1».

Попробуйте:

# shutdown +5
# systemctl status systemd-shutdownd.service

Вы должны увидеть что-то подобное:

● systemd-shutdownd.service - Delayed Shutdown Service
Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
Active: active (running) since Tue 2015-09-15 09:13:11 UTC; 12s ago
Docs: man:systemd-shutdownd.service(8)
Main PID: 965 (systemd-shutdow)
Status: "Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)..."
CGroup: /system.slice/systemd-shutdownd.service
       └─965 /lib/systemd/systemd-shutdownd

Состояние Отключение на Tue 2015-09-15 09:18:11 UTC (выключение питания)...

-121--30259-

Обычно команда find может быть связана с любой командой с помощью аргумента exec .

В вашем случае вы можете сделать так:

find . -type d | cut -c 3-12 | while read line
do
       echo -n "${line}  "
       date -d $line
done

-121--29640-

У вас уже есть:

find ./ -type d | cut -c 3-12

, что, предположительно, дает вам временные метки в эпохальном формате. Теперь добавьте цикл while:

find ./ -type d | cut -c 3-12 | while read datestamp
do
    printf %s "$datestamp"
    date -d "@$datestamp"
done

Обратите внимание, что в некоторых оболочках этот синтаксис получает цикл while во вложенной оболочке, что означает, что если вы попытаетесь задать переменную, она не будет видна после выхода из цикла. Чтобы исправить это, нужно слегка повернуть вещи на голову:

while read datestamp
do
    printf %s "$datestamp"
    date -d "@$datestamp"
done < <(find ./ -type d | cut -c 3-12)

, что помещает находку в субоболочку, и сохраняет петлю while в основной оболочке. Этот синтаксис (AT & T ksh , zsh и bash ) необходим только в том случае, если вы хотите повторно использовать результат из цикла.

7
08.12.2017, 11:16
1 ответ

Si no tiene problemas para obtener esa información del sistema operativo, con tuptime puede ver un informe completo del tiempo total del sistema Linux, incluidas las caídas del sistema.

Por ejemplo, como salida predeterminada y reanudar:

# tuptime

System startups:    8   since   08:32:29 AM 11/24/2016
System shutdowns:   3 ok   -   4 bad
System uptime:      99.99 %   -   1 year, 195 days, 5 hours, 47 minutes and 14 seconds
System downtime:    0.01 %   -   1 hour, 6 minutes and 34 seconds
System life:        1 year, 195 days, 6 hours, 53 minutes and 48 seconds

Largest uptime:     240 days, 7 hours, 38 minutes and 10 seconds   from   08:41:51 AM 02/07/2017
Shortest uptime:    18 hours, 15 minutes and 14 seconds   from   02:26:05 PM 02/06/2017
Average uptime:     70 days, 0 hours, 43 minutes and 24 seconds

Largest downtime:   45 minutes and 15 seconds   from   10:00:01 AM 03/14/2018
Shortest downtime:  5 seconds   from   02:26:00 PM 02/06/2017
Average downtime:   9 minutes and 31 seconds

Current uptime:     85 days, 4 hours, 41 minutes and 1 second   since   10:45:16 AM 03/14/2018

Alternativamente, es posible obtener una lista con todos los eventos históricos con el argumento de la lista, en la que se indica cómo fue el evento de apagado, mal (un bloqueo )o bien (después del proceso de apagado):

]
# tuptime -l

Startup:  1  at  08:32:29 AM 11/24/2016
Uptime:   46 days, 16 hours, 52 minutes and 32 seconds
Shutdown: BAD  at  01:25:01 AM 01/10/2017
Downtime: 5 minutes and 10 seconds

Startup:  2  at  01:30:11 AM 01/10/2017
Uptime:   27 days, 12 hours, 55 minutes and 49 seconds
Shutdown: OK  at  02:26:00 PM 02/06/2017
Downtime: 5 seconds

Startup:  3  at  02:26:05 PM 02/06/2017
Uptime:   18 hours, 15 minutes and 14 seconds
Shutdown: OK  at  08:41:19 AM 02/07/2017
Downtime: 32 seconds

Startup:  4  at  08:41:51 AM 02/07/2017
Uptime:   240 days, 7 hours, 38 minutes and 10 seconds
Shutdown: BAD  at  05:20:01 PM 10/05/2017
Downtime: 3 minutes and 17 seconds

Startup:  5  at  05:23:18 PM 10/05/2017
Uptime:   7 days, 14 hours, 56 minutes and 43 seconds
Shutdown: BAD  at  08:20:01 AM 10/13/2017
Downtime: 11 minutes and 35 seconds

Startup:  6  at  08:31:36 AM 10/13/2017
Uptime:   25 days, 1 hour, 7 minutes and 4 seconds
Shutdown: OK  at  08:38:40 AM 11/07/2017
Downtime: 39 seconds

Startup:  7  at  08:39:19 AM 11/07/2017
Uptime:   127 days, 1 hour, 20 minutes and 42 seconds
Shutdown: BAD  at  10:00:01 AM 03/14/2018
Downtime: 45 minutes and 15 seconds

Startup:  8  at  10:45:16 AM 03/14/2018
Uptime:   85 days, 4 hours, 42 minutes and 9 seconds

Tenga en cuenta que last rebooty journalctl --list-bootsobtienen la información de los registros, y estos registros tienen una vida máxima. En cambio, tuptimealmacena la información en un archivo db específico dedicado a ella.

Para la instalación, suponiendo que use Linux, el paquete está disponible en Debian y sus derivados:

# apt-get install tuptime

Si no, puede obtener el script de instalación "tuptime -install.sh" del repositorio :https://github.com/rfrail3/tuptime/

0
27.01.2020, 20:17

Теги

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