Debian で「稼働時間ログ」ログを維持するには?

Debian で「稼働時間ログ」ログを維持するには?

現在、私のサーバーは次のコマンドを使用してHTMLページに稼働時間を出力します。

TIME=$(uptime -p) echo ""${TIME}"!" >> /var/www/html/index.new

生成される出力は次のとおりです。

1日1時間2分追加!

また、(好奇心から)私のシステムの記録された稼働時間を表示できるようにしたいです。しかし、それを記録して(uptime-p)[日、時間、分]の形式で再表示する最良の方法はわかりません。

これを行うための既存のツールはありますか?それとも、稼働時間をファイルに記録し、grepなどを使用して最も高い値を抽出する必要がありますか?

答え1

「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(時:分:秒)です。

これは私のニーズに完全に合うはずです。

答え2

-sシステム起動時間の解析可能な時間を取得するには、このフラグを使用することをお勧めします。次に、合計dateと減算を使用します。

この操作を繰り返しながら、記録と比較し続けます。もちろん、録音時間はファイルとして保存する必要があります。

(録画ファイルを初期化する必要があります。 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

答え3

すでに使用しているのでuptimedインストールも可能です。uprecords-cgiuptimedWebページに保存されている情報をレンダリングし、デフォルトで有効になっています。http://localhost/cgi-bin/uprecords.cgi

関連情報