
여러 인수를 사용하는 스크립트가 있는데 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에 요청할 수 있습니다.