AWS 인스턴스에서 다른 인수를 사용하여 스크립트 실행

AWS 인스턴스에서 다른 인수를 사용하여 스크립트 실행

여러 인수를 사용하는 스크립트가 있는데 AWS의 여러 인스턴스에서 이 스크립트를 병렬로 실행해야 합니다. 예를 들어, 단순화를 위해 AWS에 3개의 인스턴스가 있는 경우 다음을 실행하고 싶습니다.

On instance-a: script.sh a b
On instance-b: script.sh s t
On instance-c: script.sh y z

런타임(MATLAB)과 프로그램(런타임 사용)이 이미지의 일부로 설치되는 AMI를 사용하여 인스턴스를 생성할 것입니다.

나는 확인하고 있었다이것링크를 보고 Capistrano가 언급된 것을 봤습니다. 내 경우에도 효과가 있을까요? 탐색할 수 있는 다른 경량 대안이 있습니까? 언급하자면, 각 인스턴스에서 생성된 반환 상태와 출력(CSV 파일)이 필요합니다.

답변1

3개만 원하는 경우 다음이 작동합니다( --results my.csv작동하려면 버전 >= 20161222).

parallel --results my.csv ssh {1} script.sh {2} {3} ::: instance-a instance-b instance-c :::+ a s y :::+ b t z

하지만 추측해 보겠습니다. 다음이라는 파일에 더 많은 인스턴스가 나열되어 있습니다 hosts.txt.

instance-a
instance-b
instance-c

어떤 인스턴스가 어떤 작업을 실행하는지 상관하지 않습니다. 이는 단지 작업자일 뿐입니다. 다음과 같은 .tsv 파일이 있습니다 input.tsv.

a[tab]b
s[tab]t
y[tab]z

그런 다음 다음을 실행합니다.

parallel --slf hosts.txt --results my.csv -a input.tsv --colsep '\t' script.sh 

명령이 0성공하면 값싼 현물 시장 서버에서도 실행할 수 있습니다. 를 사용하면 --retries 5한 서버가 고장난 경우(예: not 반환 0) 다른 서버에서 작업을 다시 수행하도록 GNU Parallel에 요청할 수 있습니다.

관련 정보