先月のシステム起動時間のターミナルログから取得する方法。前回のブートコマンドを使用しようとしましたが、月の初めから情報が返されました。
Ubuntuがシステム化されていることは知っていますが、これをUbuntuでテストしたことはありません。 systemdを使用している場合は、次のコマンドが機能するはずです。
systemd-analyze
ブートパフォーマンスを向上させようとしている場合は、次の出力を確認することをお勧めします。
systemd-analyze blame
詳細は Arch Wiki を参照してください
Ubuntuでは、ファイル/var/log/wtmp
(last
はデフォルトでこのファイルからデータを取得します)は、次の構成に従ってlogrotate
によってローテーションされます。
/var/log/wtmp {
missingok
monthly
create 0664 root utmp
rotate 1
}
ご覧のとおり、ローテーションファイルは毎月ローテーションされ、ローテーションファイルは1つしか存在しないため、/var/log/wtmp
には当月のログが含まれ、/var/log/wtmp.1
には前月のログが含まれます。それより前のログは保存されません。必要に応じて、この構成を必要に応じて変更できます。
last
コマンドを実行すると、デフォルトでlast
によってファイル/var/log/wtmp
が読み取られるため、今月のログが表示されます。前月のログは/var/log/wtmp.1
に保存されていることがわかっているので、last
に-f
オプションを使用してそのファイルから読み取るように指示できます。
last -f /var/log/wtmp.1
lastb
を使用しているときの/var/log/btmp
ファイルについても同様です。
最後のブート
who -b
持続するブート(しゃれの意図なし)
last boot
システムブート日付を取得する別の方法は、vmstat(8)を統計モードで-stats引数。
コマンドは次の行を公開します。
...
TIMESTAMP boot time
...
したがって、行はgawk(1)で解析でき、タイムスタンプはdate(1)コマンドを使用して以下のコマンドで人間が読める形式:
$ TIMESTAMP=$(vmstat --stats | awk '/boot time/{print $1}')
$ date -d @$TIMESTAMP
or
$ date -d @$(vmstat --stats | awk '/boot time/{print $1}')
また、dmesg(1)を-T引数とともに使用して、タイムスタンプを人間が読める形式でCommand Lineパターンを検索します。
コマンドラインパターンラインは、カーネルブートコマンドラインと、システムブート時間を提供するカーネルリングバッファー内のタイムスタンプを示します。
$ dmesg -T|grep -i 'Command line'|head -1
これらのアプローチは、Ubuntuディストリビューションだけでなく、すべてのLinuxシステムで機能します。最後に、最も移植性のある方法はwho -b
は、Linux、Unix、OSX、FreeBSDなどのシステム間で移植可能であるため、前述のとおりです。