他のサーバーでプロセスが実行されているかどうかを確認する方法

他のサーバーでプロセスが実行されているかどうかを確認する方法

プロセスが別のボックスで実行されていることを確認して値を返す方法は?たとえば、「FTP」プロセスが192.168.1.2の192.168.1.1で実行されていることを確認したい場合は、成功フラグをどのように返しますか?サーバークラスタで特定のプロセスが実行されていることを確認するスクリプトを統合したいと思います。

私は何かを思い出そうとしましたが、成功しませんでした。

for i in 'cat server_list.txt';
     do ssh $i
          "ps -ef | grep ftp = process;
          if [ $process -eq 1]
              then 
                  echo "ftp process is running"
          fi"

"ftp"プロセスが実行中であることを知らせる戻りが必要です。サーバーリストテキストファイルにはサーバーIPのリストが含まれています。

ベストアンサー1

while read -r host; do
   if ssh -n "$host" "pgrep '^ftp$'"; then
      echo "A process named 'ftp' is running on ${host}."
   fi
done < /path/to/server_list

おすすめ記事