システム起動タイムスタンプを確実に取得するには?

システム起動タイムスタンプを確実に取得するには?

コマンドについて知っていますが、uptime起動後の秒数を返すので、現在のタイムスタンプからその数を減算すると、理論的には稼働時間と現在のタイムスタンプを読み取った後に秒数が変わると、別の結果が得られます。uptime -s私が望むものですが、centosでは使用できません(しかし、どのように計算されますか?)。 / procディレクトリのctimeだけを取得できますか?これは正確な数字を提供しているようですが、すべてのLinuxシステムが起動時に/ procを生成するかどうか疑問に思います。

ベストアンサー1

まずcrtimeLinuxでは難しい。つまり、次のように実行します。

$ stat -c %z /proc/ 
2014-10-30 14:00:03.012000000 +0100

または

$ stat -c %Z /proc/ 
1414674003

あなたに必要なものかもしれません。ファイルシステムは/procLFS標準によって定義されており、すべてのLinuxシステムでも機能する必要があります。ほとんどの場合(すべて?)UNIXen。

あるいは、実際には2番目の精度が必要ではなく、正しいタイムスタンプだけが必要であると仮定すると、次のようになりますwho

$ who -b
   system boot  2014-10-30 14:00

From man who:-b、--bootシステムが最後に起動した時刻

GNUを使用して、それをエポック以降の秒単位に変換できますdate

$ date -d "$(who -b | awk '{print $4,$3}' | tr - / )" +%s
1414674000

おすすめ記事