
Linuxはデータセンターにとって優れたソリューションです。非常に柔軟で、安定性、セキュリティ、そして信頼性に優れています。実際、オープンソースプラットフォームでできないことはほとんどありません。つまり、開発、テスト、運用などのために、ユーザーがLinuxサーバーに何台でもログインしている可能性があるということです。しかし、社内メールを一斉送信したり、何度も電話をかけたりすることなく、ログインしているユーザー全員にメッセージを送信したい場合はどうすればよいでしょうか?Linuxなら、それが可能であるだけでなく、非常に簡単です。
これからその方法を説明しますが、一つ注意点があります。それは、ターミナルウィンドウにログインしているすべてのユーザーにしかメッセージを送信できないということです。デスクトップにメッセージを送信するツールは数多くありますが、セキュリティ上の問題から、広範囲への送信や特定のユーザーへの送信は許可されていません。そのため、メッセージの送信はターミナルウィンドウ経由のみに制限されています。もちろん、データセンターのサーバーでユーザーがグラフィカル環境にログインしている可能性は/dev/nullに次ぐため、ターミナルは適切なソリューションです。
特定のユーザー、そしてすべてのユーザーにメッセージを送信する方法をご紹介します。Linuxディストリビューションには必要なものがすべて含まれているので、ソフトウェアをインストールする必要はありません。それでは、メッセージを送信してみましょう。
特定のユーザーへのメッセージ
まず最初に、SSH経由で問題のサーバーにログインする必要があります。ログインしたら、誰がログインしているかを確認する必要があります。ログインしているユーザーを確認するには、whoコマンドを実行します。ログインしているユーザーと、そのユーザーのマシンのIPアドレスが表示されます(図A)。
図A

例えば、Oliviaにサーバーが1時間後に再起動されることを伝える必要があるとします。そうすれば、彼女には作業内容を保存してログアウトする十分な時間があります。そのためには、メッセージを送信するwriteコマンドと、メッセージをより簡単に作成するechoコマンドを使用します。ユーザーoliviaにメッセージを送信するには、以下のコマンドを使用します。
echo "This server is going to be rebooted in 1 hour!" | write olivia
Olivia は警告 (図 B ) を確認し、キーボードの Enter キーを押してメッセージを閉じることができます。
図B

Olivia は次のようなコマンドで応答することもできます。
echo "Understood" | write jack
その後、ユーザー jack がメッセージを受信します (図 C )。
図C

すべてのユーザーにメッセージを送信する
ログインしているユーザーが多数いて、個別にメッセージを送信したくないとします。ログインしているすべてのユーザーがアクセスできるグローバルメッセージをシステムに送信するには、次のコマンドを実行します。
wall "System will be rebooting in one hour!"
これにより、ログインしているすべてのユーザーに同じメッセージが表示されます (図 D )。
図D

注: write コマンドと wall コマンドは、どのユーザーでも使用できます。sudo 権限や root 権限は必要ありません。
システム全体の通信のための簡単なソリューション
社内を駆け巡り、ログインしている全ユーザーにメッセージを伝える以外に、Linuxサーバーにログインしているユーザーにメッセージを伝えるより効率的な方法を見つけるのは難しいでしょう。これは、Linuxデータセンターサーバーの状況をユーザーに確実に把握させるのに最適なツールです。