私のdebianボックスの稼働時間の履歴を取得するにはどうすればよいですか?再起動後、稼働時間の履歴を出力するuptimeコマンドのオプションが表示されません。必要に応じて、これらのアップタイムを使用してphpでページをグラフ化し、ブート間のウェブサーバーのアップタイムの長さを表示します。
更新:それが時間の長さに基づいているかどうか、または最後が再起動時にリセットされるかどうかはわかりませんが、最後のコマンドでは最新のブートタイムスタンプのみを取得します。また、last -xはそれ以上の情報を返しません。台本のような音が私の最善の策です。
更新:Uptimedは私が探している情報ですが、コードでその情報をgrepする方法がわかりません。 db用に自分のスクリプトを管理することは、アプリケーションに最適だと思います。
稼働時間を実行してそれをファイルにダンプする簡単なスクリプトを作成できます。
uptime >> uptime.log
次に、そのためのcronジョブを設定します。
インストール ptimed 。それはまさにあなたが望むものを行います。
編集:
PHPページに次のように簡単に含めることができます:
<? system("/usr/local/bin/uprecords -a -B"); ?>
last
コマンドは、システムの再起動時間を提供します。連続する各リブートの違いを取ることができ、それによりマシンの稼働時間が得られます。
更新
1800 INFORMATION 答えはより良い解決策です。
これを試してください:
last | grep reboot
last
マニュアルページによると:
疑似ユーザー再起動は、システムが再起動されるたびにログインします。したがって、最後の再起動では、ログファイルが作成されてからのすべての再起動のログが表示されます。
#last reboot
コマンドの最後の列には、稼働時間の履歴が表示されます。
#last reboot
reboot system boot **************** Sat Sep 21 03:31 - 08:27 (1+04:56)
reboot system boot **************** Wed Aug 7 07:08 - 08:27 (46+01:19)
次の[onone1行を入力して、必要な解像度(たとえば10分)で実行するcronジョブを作成します-分離しました書式設定の目的で]]をcrontabに入力します(一覧表示するにはcron -l、編集するにはcron -e)。
0,10,20,30,40,50 * * * *
/bin/echo $(/bin/date +\%Y-\%m-\%d) $(/usr/bin/uptime)
>>/tmp/uptime.hist 2>&1
これにより、マシンの実行中に10分ごとに日付、時刻、アップタイムがuptime.histファイルに追加されます。次に、このファイルを手動で調べて情報を把握するか、スクリプトを記述して、必要に応じて処理します。
稼働時間が減少するときはいつでも、前の記録以来リブートがありました。ライン間に大きなギャップがある場合(つまり、予想される10分を超える場合)、マシンはその間ダウンしています。
これはブートの間に保存されません、しかし The Uptimes Project はそれを追跡するサードパーティのオプションであり、さまざまなプラットフォーム向けのソフトウェアを備えています。
Debianで利用可能な別のツールは ptimed で、これはブート間のアップタイムを追跡します。
ここでさかのぼって役立つ答えを見つけられなかったので、これは誰かを助けるでしょう。
kern.log(ディストリビューションによって異なります)はタイムスタンプを記録する必要があります。 2019-01-28T06:25:25.459477 + 00:00 someserver kernel:[44114473.614361] somemessage
「44114473.614361」は、最後の起動からの秒数を表します。これにより、何もインストールしなくても稼働時間を計算できます。
または、tuptime https://sourceforge.net/projects/tuptime/ を使用して、合計稼働時間を求めることもできます。
私はこの情報が再起動の間に保存されるとは思わない。
適切にシャットダウンした場合、シャットダウン時にコマンドを実行して稼働時間を節約できます。そのようにして、起動後に再度読み取ることができます。
この情報は通常保存されません。ただし、これを行うオンラインサービスにサインアップできます。 5分ごとにサーバーに稼働時間を送信するクライアントをインストールするだけで、サイトが稼働時間のグラフを表示します。
リブート間で維持するLinuxの総稼働時間を報告する簡単なコマンドであるtuptimeを使用できます。
Nagiosはこれについて非常に美しい図を作成することもできます。