다른 서버에서 프로세스가 실행 중인지 확인하는 방법

다른 서버에서 프로세스가 실행 중인지 확인하는 방법

프로세스가 다른 상자에서 실행 중인지 확인하고 값을 반환하는 방법은 무엇입니까? 예를 들어, "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

관련 정보