「uptime」を使用して、最後のシステム起動からの経過時間を表示するにはどうすればよいですか?


17

を使用して最後のシステムブートからの経過時間を表示したいのですが、uptimeすべての情報を表示したくありません。前回のシステム起動から経過した時間を知りたいだけです(例:18:17:59)

回答:


31

前回のシステム起動からの経過時間をhh:mm:ss形式で取得するには、次を使用できます。

awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime

/proc/uptime 疑似ファイルには2つの数字が含まれます。

  • 最初の数値は、システムが数秒で稼働している時間です。
  • 2番目の数値は、マシンがアイドル状態で費やした時間を秒単位で表したものです。

だから、awkあなたは最初の数を取り、hh:mm:ss形式に変換することができます。


15

稼働時間を数秒で取得するには:

awk '{print $1}' /proc/uptime

稼働時間を数分で取得するには:

 echo $(awk '{print $1}' /proc/uptime) / 60 | bc

稼働時間を数時間で取得するには:

 echo $(awk '{print $1}' /proc/uptime) / 3600 | bc

x桁の精度を得るには、scale = xを追加できます。たとえば、x = 2の場合

echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc

2

これを試してください:

uptime | awk '{ print $3 }'

実際、によって生成された行の3番目の単語を出力しuptimeます。


3
できます。しかし、それは正しい方法ではないようです。たとえば、3番目の単語が時間ではない場合、たとえば3番目の単語が "4"の場合、マシンは4日間実行されているためです。これは、「4日間02:00:39、12:54、2ユーザー、ロード平均:0.03。0.06、0.06」です。
エイドリアンジョージ

ああ:DIは1日以上の時間を知りませんでした!
アレン

それは大丈夫です:d今、あなたはこれにいくつかの答えを持っていますか?
エイドリアンジョージ

いいえ、ごめんなさい。uptime選択肢はないようですが、ネットでも何も見つかりませんでした。
アレン

2

日を表示するための簡単な変更:

awk '{print int($1/86400)"days "int($1%86400/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime

0

これにより、出力が2つのゼロパディングとしてフォーマットされます。

awk '{printf("%02d:%02d:%02d",int($1/3600),int($1/3600/60),int($1%60))}' /proc/uptime
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.