リモート マシンに誰かがログオンしているかどうかを確認するにはどうすればよいですか?

リモート マシンに誰かがログオンしているかどうかを確認するにはどうすればよいですか?

マシン名が与えられたら、そのマシンに誰かがログインしているかどうかを確認したいと思います。yes/no の回答だけで十分です (ユーザー名は不要です)。どのようなコマンドを探すべきかについてヒントはありますか?

「ログイン」とは、そのマシン上でグラフィカル UI を使用することを意味します。ssh はカウントされません。

このマシンに対して承認された SSH ログインを持っていると想定できます。

答え1

who誰がログインしているかを表示します。GUI を使用している場合、そのユーザーの「端末」は接続している X ディスプレイです (そうでない場合は tty)。

paul     :0           2013-02-20 11:43

それで

who | grep paul

ログインしていない場合は何も返されず、ログインしている場合は何かが返されます。

ssh およびコンソール接続を除外する場合は、次のようにします。

who | grep -v pts | grep paul

ssh コマンドに以下を追加することで、このコマンドをリモートで実行できます。

ssh user@host 'who | grep -v pts | grep paul'

これにより、リモート マシンにログインし、 を実行しwho、結果が返されます。

関連情報