サーバーの「いつから動いているか」「最後に再起動したのはいつか」は、障害対応の初動やパッチ適用前の確認など、運用のさまざまな場面で必要になります。この記事では、連続稼働時間と最終起動日時をターミナルから手軽に確認するコマンドを、目的別に解説します。
uptime コマンドで稼働時間をひと目で確認する
稼働時間をすばやく確認するなら、uptime コマンドが最もシンプルです。引数なしで実行すると、現在時刻・稼働時間・ログイン中のユーザー数・ロードアベレージが一行で表示されます。
uptime
次のような形式で出力されます。
15:42:31 up 10 days, 3:12, 2 users, load average: 0.08, 0.03, 0.01
「up 10 days, 3:12」が連続稼働時間です。日数が表示されない場合は起動から24時間未満であることを意味します。ロードアベレージも同時に確認できるため、負荷の概況をつかむ際にも役立ちます。
稼働時間だけを見やすい形式で取り出したい場合は、-p(pretty)オプションが使えます。
uptime -p
up 10 days, 3 hours, 12 minutes
スクリプトへの組み込みや報告書への貼り付けで、稼働時間のテキストだけを切り出したいときに便利です。
最終起動日時を日時形式で確認する
uptime は「何日何時間」という相対的な経過時間を返しますが、「何月何日の何時に起動したか」という絶対的な日時が必要な場合は別のコマンドを使います。
who コマンドに -b(boot time)オプションを付けると、最終起動日時を表示できます。
who -b
system boot 2026-11-03 12:30
年月日と時刻が表示されるため、「何日前に起動したか」を暦の上で把握しやすくなります。
systemd 環境では、systemd-analyze でも起動日時とその所要時間をまとめて確認できます。
systemd-analyze
Startup finished in 1.823s (kernel) + 8.714s (userspace) = 10.538s
multi-user.target reached after 8.692s in userspace.
カーネルの初期化からユーザースペースの完了までの所要時間も表示されるため、起動プロセス自体の速度を把握したいときにも役立ちます。
再起動の履歴を一覧で確認する
直近の起動だけでなく、「過去に何回・いつ再起動が発生したか」も把握したい場合は、last reboot が便利です。
last reboot
reboot system boot 5.15.0-91-generic Mon Nov 3 12:30 still running
reboot system boot 5.15.0-91-generic Wed Oct 15 09:10 - 12:28 (3+03:18)
reboot system boot 5.15.0-91-generic Mon Oct 1 08:00 - 09:07 (1+01:07)
wtmp begins Mon Sep 1 00:00:00 2026
各行の右端には稼働していた期間が表示されます。「still running」は現在も稼働中であることを示します。最終行の「wtmp begins」は履歴ファイルの記録開始日時で、これより以前の履歴は参照できません。
出力が長くなる場合は、直近の数件のみに絞って確認できます。
last reboot | head -5
稼働時間を秒数で取得したいとき
シェルスクリプトや監視ツールとの連携で、稼働時間を秒数の数値として扱いたい場合は /proc/uptime を参照するのが確実です。
cat /proc/uptime
878532.14 3514108.56
1つ目の値が起動からの経過秒数、2つ目の値が全 CPU コアのアイドル時間の合計秒数です。稼働時間の秒数だけを取り出すには次のコマンドが使えます。
awk '{print $1}' /proc/uptime
取得した秒数を日・時・分に変換したい場合は、算術展開や date コマンドを組み合わせて処理できます。
よくあるつまずきと確認のポイント
稼働時間の確認でつまずきやすい点を整理します。
- システム時刻のずれ:NTP の同期に問題があると、
who -bやlastで表示される日時が実際の起動時刻とずれることがあります。timedatectl statusで NTP の同期状態を確認してください。 - コンテナ環境での注意:Docker などのコンテナ内で
uptimeを実行すると、ホスト OS の稼働時間が表示される場合があります。コンテナ自身の起動時刻を調べるには、docker inspectなどコンテナ管理ツール側のコマンドを使う方が正確です。 - last コマンドに履歴が残っていない:
last rebootの出力が「wtmp begins」だけで再起動の記録がない場合は、wtmp ファイルが初期化されているか、ログローテーション後のファイルが対象になっていない可能性があります。journalctl --list-bootsで systemd ジャーナルから起動履歴を確認する方法も試してみてください。
稼働時間と起動日時は、障害対応・パッチ管理・定期メンテナンスのいずれにおいても、調査の起点となる基本情報です。各コマンドの使いどころを把握しておくと、状況に応じて必要な情報をすぐに引き出せます。
「コマンドは打てる。次は”現場で通用する型”を最短で身につけたい」——そんなあなたへ。
ネットの断片的なTipsをコピペするだけでは、体系的な運用スキルはなかなか積み上がりません。リナックスマスター.JPの無料メルマガ「リナマガ」では、現場で実際に使うLinuxサーバー運用の考え方を、順を追って実務目線でお届けしています。いま登録された方には、安全なサーバー構築の「型」をまとめた『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼント中です。
>> 図解60P『Linux入門マニュアル』を無料で受け取る
(メルマガ登録は10秒・いつでも解除OK)
※ 「独学の時間がもったいない」「プロから現場の技術を最短で学びたい」という本気の方には、2日で実務レベルが身につく初心者向けハンズオンセミナーもご用意しています。
