/etc/motdを自動生成する方法|ログイン時にシステム情報を表示する

/etc/motdを自動生成する方法

Linuxサーバの状態をログイン時に表示する|motd自動生成の仕組みと活用方法

Linuxサーバへログインした際に、CPU使用率やメモリ使用率、ディスク使用率などのシステム情報が自動的に表示される環境を見たことがある方も多いのではないでしょうか。

これは単なる固定メッセージではなく、ログイン時に現在のシステム情報を取得して動的に生成されたメッセージです。

企業のサーバ運用では、サーバへログインした瞬間にシステム状態を把握できるため、障害の早期発見や運用効率化に役立っています。

Linuxでは /etc/motd を活用することで、このような仕組みを構築できます。

本記事では、motdの自動生成方法や実務での活用例について詳しく解説します。

motdとは

motdは「Message Of The Day」の略称です。

ユーザ認証後に表示されるメッセージを管理する仕組みで、通常は以下のファイルが利用されます。


/etc/motd

一般的には固定メッセージを記載しますが、スクリプトと組み合わせることで動的な情報を表示できます。

固定メッセージと動的メッセージの違い

固定メッセージの場合は、ファイルへ直接内容を書き込みます。


本番環境です

作業前にバックアップを取得してください

一方で動的メッセージの場合は、ログイン時点の情報を表示できます。


CPU使用率 : 15%
メモリ使用率 : 43%
ディスク使用率 : 72%
現在時刻 : 2026-07-01 09:00

リアルタイムの状態を確認できる点が大きな違いです。

なぜmotdを自動生成するのか

サーバ管理者は日々多くのサーバへログインします。

ログインするたびに個別コマンドで状態確認を行うのは手間がかかります。

そこでmotdへ必要な情報を表示することで、ログイン直後に状況を把握できるようになります。

主なメリットは以下の通りです。

  • 障害の早期発見
  • 運用効率向上
  • 状態確認の手間削減
  • 担当者間の情報共有
  • 監視情報の補助

CPU使用率を表示する

まずはCPU負荷を表示してみましょう。

以下のコマンドでロードアベレージを取得できます。

# uptime

出力例です。
load average: 0.10, 0.15, 0.20

この値をmotdへ出力することで負荷状況を確認できます。

メモリ使用率を表示する

メモリ使用量はfreeコマンドで確認できます。

# free -h

出力例です。
Mem: 8.0Gi 4.1Gi 2.3Gi

サーバへログインした瞬間にメモリ不足へ気付ける場合があります。

ディスク使用率を表示する

ディスク容量不足は障害原因として非常に多く発生します。

そのためディスク使用率表示は実務でもよく利用されます。

# df -h

出力例です。
Filesystem Size Used Avail Use%
/dev/sda2 100G 72G 28G 72%

使用率が90%以上の場合は注意が必要です。

ログインユーザ数を表示する

現在ログインしているユーザ数も確認できます。

# who

または件数のみ表示する場合は以下です。

# who | wc -l

共有サーバでは有効な情報となります。

最終ログイン情報を表示する

lastコマンドを利用するとログイン履歴を確認できます。

# last -n 1

不審なログインがないか確認する用途でも利用されます。

シェルスクリプトでmotdを生成する

実際にはシェルスクリプトを利用して生成するケースが一般的です。

例として以下のようなスクリプトを作成します。

#!/bin/bash

echo "Server Status"
echo
echo "Hostname : $(hostname)"
echo "Date     : $(date)"
echo
echo "Disk Usage"
df -h /
echo
echo "Memory"
free -h

実行結果を /etc/motd へ出力します。

cronによる定期更新

定期的にmotdを更新する場合はcronを利用します。

# crontab -e

例えば5分ごとに更新する場合です。

*/5 * * * * /usr/local/bin/update-motd.sh

常に最新の状態を表示できます。

systemd timerによる自動更新

最近のLinuxではcronの代わりにsystemd timerを利用することもあります。

systemd環境との親和性が高く、サービス管理を統一できます。

大規模環境ではtimerを採用するケースも増えています。

PAMを利用した動的表示

Ubuntuなどではpam_motdという仕組みが利用されています。

ログイン時にスクリプトを実行して動的な情報を生成します。


session optional pam_motd.so

この仕組みによって最新情報を表示できます。

Ubuntuの動的motd

Ubuntuへログインすると以下のような情報が表示されます。


System load
Memory usage
Processes
IPv4 address
Updates available

これは複数のスクリプトによって自動生成されています。

企業でよく表示される情報

実務では以下の情報がよく利用されています。

  • ホスト名
  • IPアドレス
  • CPU負荷
  • メモリ使用率
  • ディスク使用率
  • 最終ログイン日時
  • メンテナンス予定
  • 運用部署情報

サーバの状態把握と情報共有を両立できます。

本番環境での活用例

本番サーバでは以下のような表示がよく利用されます。


Production Server

Hostname : web01
Date     : 2026-07-01

Disk Usage : 72%
Memory Usage : 43%

Next Maintenance
2026-07-20 22:00

Operation Team
Infrastructure Division

ログイン直後に必要な情報を把握できます。

表示しすぎに注意

便利だからといって情報を増やしすぎるのはおすすめできません。

表示が長すぎると重要な情報が埋もれてしまいます。

本当に必要な情報だけを表示することが重要です。

セキュリティ上の注意点

motdは認証後に表示されますが、過剰な情報公開は避けるべきです。

以下の情報は掲載しないようにしましょう。

  • パスワード情報
  • 機密情報
  • 顧客情報
  • ネットワーク構成図
  • 認証情報

必要最小限の情報にとどめることが重要です。

実務で覚えておきたいポイント

  • motdは認証後に表示される
  • シェルスクリプトで自動生成できる
  • CPUやメモリ情報を表示できる
  • cronやsystemd timerで更新可能
  • Ubuntuでは動的motdが標準採用されている
  • 情報量は必要最小限にする
  • 監視システムの補助として活用できる

まとめ

/etc/motdは単なるメッセージ表示機能ではなく、システム状態や運用情報を共有するための便利な仕組みです。

シェルスクリプトやcron、systemd timerと組み合わせることで、ログイン時に最新のサーバ情報を自動表示できます。

実務ではCPU負荷やメモリ使用率、ディスク使用率などを表示し、障害の早期発見や運用効率向上に役立てています。

適切な情報設計を行い、自社の運用に合わせたmotdを構築してみましょう。