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 reboot
y journalctl --list-boots
obtienen la información de los registros, y estos registros tienen una vida máxima. En cambio, tuptime
almacena 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/
Использование скрипта bash:
#!/bin/bash
tmp_d=$(mktemp -q -d -t 'replace.XXXXX' || mktemp -q -d)
for f in chr*.out; do
tmp_f="${tmp_d}/$f"
n="${f#chr}"
n="${n%.out}"
awk -v n="$n" '$3 == "NA" { $3=n }1' "$f" > "$tmp_f"
mv "$tmp_f" "$f"
done
rm -r "$tmp_d"
Сначала мы создаем каталог tmp, так как мы будем создавать файлы tmp
Затем мы прокручиваем каждый chr*.out
файл.
chr
.out
awk
заменит любой NA
в третьем столбце числом, извлеченным из имени файла, и сохранит его в файле tmp После завершения цикла мы удаляем каталог tmp.
всего, что связано с tmp, можно избежать, если у вас есть GAWK, который может использовать опцию -i
in place
Я предлагаю один sed
скрипт для обработки всех файлов.
sed -i 's/ NA / 1 /' chr{1..22}.out