Linuxでログインユーザーへメッセージ通知する方法

Linuxでログインユーザーへメッセージ通知する方法

CUI環境のLinuxマシンでは、以下のタイミングでユーザーにメッセージを通知することができます。これらを使いこなせば、複数のユーザーが利用するマシンでも、効率よくユーザーにメッセージを伝えることができます。

  • ログイン前
  • ログイン時
  • ログイン中

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4.1708

ログイン前のメッセージ

CentOS 7では、ログイン画面に以下のようなメッセージが表示されています。ここに表示されている内容は「/etc/issue」に記載されている内容に従って表示されています。

Linuxでログインユーザーへメッセージ通知する方法

「/etc/issue」を編集することで、表示する内容を任意に設定することができます。

ログイン時のメッセージ

ユーザーがログインしたときに表示したいメッセージは「/etc/motd」に記載します。サーバーのメンテナンス情報など、マシンにログインするすべてのユーザーに伝えたいことがあるときに利用できます。

ログイン中のユーザーへメッセージ

ログイン中のすべてのユーザーにメッセージを送りたいときは「wall」もしくは「shutdown -k now "メッセージ"」を利用します。

wallコマンド

wallコマンドで、ユーザーにメッセージを送るときは以下のようにコマンドを実行します。

# wall "The system will shutdown soon."
Memo

CentOS 7のwallコマンドでは、日本語が文字化けするようです。

ちなみに、改行を含む複数行を送りたいときは、wallコマンドを単独で実行します。すると、キーボードからの入力待ちとなるので、メッセージを入力し、最後に[Ctrl]+[D]キーで入力したメッセージを送信します。

shutdownコマンド

shutdownコマンドで、ユーザーにメッセージを送るときは以下のようにコマンドを実行します。

# shutdown -k +1 "1時間後にサーバーを再起動します。"
Memo

CentOS 7で「-k」オプションを使用する場合は、時間指定で「now」や「+0」を指定すると、メッセージを送信することができないようです。

あとがき

複数のユーザーがログインするようなLinuxサーバーでは、利用価値がありそうですが私のような個人用途ではほぼ使いませんね。