Linux環境では、複数のユーザーがSSHを介してサーバーで同時に作業しているシナリオがあります。ただし、システム管理者は、次の理由でシステムを再起動またはシャットダウンする必要がある場合があります。システムのメンテナンス、カーネルのアップグレード、サーバーへのハードウェアの追加または削除。この場合、システム管理者は、ログインしているすべてのユーザーに作業内容を保存するように通知する必要があります。最初に誰がログインしているかを調べてから電子メールを送信する必要があるため、電子メールはこの状況に適合しません。また、ユーザーがいつメールを読むかはわかりません。幸いなことに、これを簡単に実行できるLinuxコマンド「wall」があります。
ここでは、Linuxでのwallコマンドの使用法について説明します。 wallコマンドはすべてのLinuxディストリビューションで同じように機能することを忘れないでください。
注 :Wallコマンドは、ログインしているユーザーのターミナルウィンドウにのみメッセージを表示します。ターミナルウィンドウを開いていないGUIのみで作業しているユーザーは、メッセージを表示できません。
Linuxウォールコマンド
Linux Wallコマンドを使用すると、現在ログインしているすべてのユーザーにメッセージまたはファイルの内容を送信できます。ファイルまたはメッセージが指定されていない場合、wallコマンドはstdin(標準入力)からメッセージを読み取ります。
壁コマンド構文
wallコマンドの構文は次のとおりです。
$ wall [options] [message-or-filename]
すべてのユーザーにメッセージを送信する
現在ログインしているすべてのユーザーにメッセージを送信するには、 wallと入力します 送信したいメッセージが続きます。
$ wall System is going down for 1-hour maintenance.
このコマンドは、ターミナルウィンドウを開いた状態でログインしているすべてのユーザーにメッセージを送信します。
注 :一部のLinuxディストリビューションでは、スーパーユーザーとして上記のコマンドを実行する必要があります。また、ユーザーが端末へのメッセージを拒否することを選択した場合(mesgコマンドを使用する場合など)、sudoユーザーのみが端末にメッセージを送信できます。
以下は、SSH経由でサーバーにログインしている2人のユーザー「linuxways」と「ummara」に表示される出力です。これらのユーザーは、UbuntuとDebianを実行しているシステムで作業しています。
wallコマンドは、 stdinからのメッセージも読み取ります (標準入力)。これを行うには、 wallと入力するだけです。 Enterを押します 。
$ wall
その後、ログインしているユーザーに送信するメッセージを入力します。メッセージの入力が完了したら、 Ctrl + Dを押します。 それらのメッセージを送信します。
this is first line this is second line .
これは、ログインしているすべてのユーザーがターミナルで受け取った出力です。
ファイルからメッセージを送信する
頻繁に繰り返す必要のあるメッセージがある場合は、ファイルに入力するだけです。ログインしたユーザーにこれらのメッセージを送信する必要がある場合は、wallコマンドを使用してそのファイルを呼び出すだけです。ファイルからメッセージを送信する場合は、sudo権限が必要になることを忘れないでください。
$ sudo wall <filename>
たとえば、次の出力では、ファイルの内容が最初にcatコマンドを使用して表示されています。次に、ファイルに含まれているメッセージを送信するために、ファイル名がwallコマンドに渡されます。
これらは(ファイル msg.txt からの)出力です。 )ログインしたユーザーが受信しました。
グループにメッセージを送信する
ログインしているすべてのユーザーにメッセージを送信する代わりに、現在システムにログインしているグループのメンバーにのみメッセージを送信できます。構文は次のとおりです。
$ wall -g [group] [message]
たとえば、「sshusers」という名前のグループにメッセージを送信するには、コマンドは次のようになります。
$ wall -g sshusers System is going down for 1 hour maintenance.
現在サーバーにログインしている「sshusers」グループのすべてのメンバーは、指定されたメッセージを受信します。
バナーの抑制
次のスクリーンショットに示すように、wallコマンドは、メッセージを表示する前にバナーを表示します。
このバナーを非表示にするには、wallコマンドで-nオプションを使用します。
$ wall -n <message>
たとえば、次のコマンドは、バナーを抑制しながら、指定されたメッセージのみを表示します。
$ wall -n System is going down for 1 hour maintenance.
ログインしているすべてのターミナルユーザーは、バナーなしでメッセージを受信します。
バージョン情報の表示
wallコマンドのバージョンを表示するには、次のコマンドを使用します。
$ wall -V
次の出力は、wallユーティリティのバージョンが2.34であることを示しています。
Wallは、マルチユーザーシステム管理者がシステムのシャットダウンまたは再起動の前に他のユーザーに作業を保存するようにすばやく通知するのに役立つ便利なユーティリティです。この記事では、wallコマンドを使用してログインしているユーザーと通信する方法について説明しました。面白くて便利だと思います。