Как вести журнал 'uptime record' в Debian?

Используйте двойные кавычки вместо одинарных:

SERVER_ADDRESS="$(curl -s http://lookup.api.com).restofaddress.com"

Интерполяции и расширения (например, раскрытие переменных или раскрытие команд, как в данном случае) выполняются внутри строк в двойных кавычках, но не в строках в одинарных кавычках.

1
23.10.2016, 23:28
2 ответа

После установки 'uptimed' я добавил в свой скрипт следующие несколько строк:

uprecords | head -n 4 | tail -n 1 | awk '{print "Current uptime record is " $3,$4$5,$6" (hr:mis:sec)"}'

Текущая запись времени безотказной работы составляет 1 день, 02:05:34 (час: мин: сек)

Это должно быть больше, чем подходит для моих нужд.

0
28.01.2020, 02:12

Я бы предложил использовать флаг -s , чтобы получить доступное для анализа время запуска системы. А затем используйте дату и вычитание.

Продолжайте делать это в цикле и сравнивайте с записью. Время записи, конечно, нужно сохранить в файл.

(Файл записи должен быть инициализирован. echo 0> record )

Пока этот сценарий продолжает работать, все могут просто прочитать файл записи, чтобы узнать, что это за текущая запись.

#!/bin/sh

format_time ()
{
    t=$1

    days=$(($t / 86400))
    t=$(($t - 86400*$days))

    hours=$(($t / 3600))
    t=$(($t - 3600*$hours))

    minutes=$(($t / 60))
    t=$(($t - 60*$minutes))

    echo "$days days $hours hours $minutes minutes $t seconds"
}

main ()
{
    # Old record
    record="$(cat record)"

    # When the system started.
    boot="$(date -d "$(uptime -s)" '+%s')"
    while true; do
        # You could also calculate the uptime before the loop and just
        # increment it, but that will rely on the script running 24/7.
        now="$(date '+%s')"
        current_uptime="$(($now - $boot))"
        # Set and save the record when it gets beaten
        if [ "$current_uptime" -gt "$record" ]; then
            record="$current_uptime"
            echo "$record" > record
        fi
        # Status should be printed _after_ potentially having set
        # a new record:
        clear
        echo "Current uptime: $(format_time "$current_uptime")"
        echo "Record uptime: $(format_time "$record")"
        # Don't waste system resources for silly things.
        sleep 1
    done
}

main
0
28.01.2020, 02:12

Теги

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