여러 서버에서 명령 실행

여러 서버에서 명령 실행

여러 서버에서 프로세스를 실행하고 싶습니다. 다음 래퍼 스크립트를 사용하고 있습니다. 스크립트는 한 번에 하나의 서버로 이동합니다. 여러 서버에서 실행될 수 있도록 변경하고 싶습니다. 그것을 할 수 있는 방법이 있나요?

#!/bin/bash
for ip in $(<ALL_SERVERS_IP); do
    # Tell the remote server to start bash, but since its
    # standard input is not a TTY it will start bash in
    # noninteractive mode.
    ssh -q "$ip" bash <<-'EOF'
        printf "%s\n" ================== "$(hostname) ::: Current date : $(date)" \
                            ==================
        ./remote 
    EOF
done

답변1

예. pdsh여러 원격 호스트에서 동시에 명령을 실행하는 시도해 보세요 . 작업은 다음과 같이 작성할 수 있습니다.

pdsh -w ssh:$(echo $(<ALL_SERVERS) | sed -e 's/ /,/g') 'printf "%s\n" ...'

답변2

찾고 있는 것 같군요.GNU 병렬. 이것은 거의 정확하게 쓰여진 것입니다. 귀하의 경우에는 다음을 수행합니다.

parallel ./remote --sshloginfile ALL_SERVERS_IP

위의 내용은 ALL_SERVERS_IP한 줄에 하나의 IP 또는 호스트 이름이 있는 텍스트 파일이라고 가정합니다. 서로 다른 로그인을 가질 수 있는 경우 다음과 같이 목록을 만드십시오.

[email protected]
[email protected]
[email protected]

답변3

나는 몇 가지 도구를 알고 있지만 가장 간단한 것은구조. 한번 보고 어떻게 생각하는지 말해주세요.

관련 정보