다른 매개변수를 사용하여 원격 노드에 병렬 명령을 실행하는 방법은 무엇입니까?

다른 매개변수를 사용하여 원격 노드에 병렬 명령을 실행하는 방법은 무엇입니까?

여러 서버에 서로 다른 매개변수를 제공하면서 여러 Ubuntu 서버에서 애플리케이션을 병렬로 실행해야 합니다. 인터넷 검색을 시도했지만 가능한 해결책을 찾지 못했습니다. 나는 ssh/pdsh/parallel을 시도했지만 성공하지 못했습니다.

시나리오를 더 자세히 설명하기 위해 다음은 3개 서버 모두에서 병렬로 실행되어야 하지만 다른 매개 변수를 사용하여 실행되어야 pdsh하는 작동하지 않는 예( 포함) 입니다. script.sh참고로 저는 이미 공개/개인 SSH 키(비밀번호 로그인 없음)를 가지고 있습니다.

pdsh -w server1,server2,server3 -l username script.sh args

여기서 argsserver1은 1이어야 하고, server2는 2여야 합니다.

pdsh누구든지 Ubuntu의 도구나 사용 가능한 다른 도구를 사용하여 이를 달성하는 데 도움을 줄 수 있다면 매우 감사하겠습니다.

답변1

당신은 그것을 사용할 수 있습니다GNU 버전의 병렬성

예를 들어 를 통해 echo매개변수를 사용하여 1호출 하려면 10각 명령을 echo또는 다음 중 하나로 전달합니다.server.example.comserver2.example.net

seq 10 | parallel --sshlogin server.example.com,server2.example.net echo

관련 정보