여러 ssh 및 scp 호출과 관련된 일련의 명령을 스크립팅하고 싶습니다. SSH 시스템 2에 SYSTEM1에서 SYSTEM1
에 SYSTEM1에 시스템 2에
에서 mkdir/tmp를/데이터를
에서 mkdir/tmp에/데이터를 로컬 시스템에서여러 시스템에 여러 ssh 및 scp 명령을 스크립팅하는 방법
, SSH : 매일에, 내가 찾을 자신은 수동으로 작업을 수행 시스템 2, 시스템 3에 SSH 시스템 3에서
SCP 파일에서
: 시스템 2에/데이터 : 시스템 2에서
SCP 파일 시스템 2 할/tmp를/데이터
종료 :/데이터 및 시스템 2 : SYSTEM1에/tmp에/데이터 :/tmp/data
RM -fr 시스템 2 :/tmp를/데이터 SYSTEM1에서
SYSTEM1에 종료
SCP 파일 :/데이터 및 SYSTEM1 : LOCAL에/tmp에/데이터/데이터
RM -fr SYSTEM1 :/tmp를/데이터
나는 하루에 한 번씩이 과정을 수행하며, 다른 시스템 사이를 이동 한 다음 나중에 정리하는 데 약 5-10 분이 걸립니다. 나는 이것을 bash 스크립트에서 자동화하고 싶다.하지만 아마추어 시도는 실패했다. 예상대로 시스템 통신에 제약이 있습니다. LOCAL은 System1 만 볼 수 있고 System2는 System1 및 System3 만 볼 수 있으며 system3은 system2 만 볼 수 있음을 의미합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 또한 System1은 많은 다른 시스템을위한 허브이므로 SYSTEM2는 사용자가 지정해야합니다 (System3은 항상 SYSTEM2와 비교하여 동일한 상대 IP/호스트 이름을 갖습니다).
쉘 스크립트에서 올바른 순서로 명령을 입력 한 다음 프롬프트가 나타나면 수동으로 입력하는 방법으로 시도했지만 (이 방법은 이미 효율성면에서 엄청난 이득을 얻었을 예정 임) 방법이 작동하지 않거나 실행되지 않습니다. 스크립트가 잘못되었습니다. 또한 'system2'를 연결할 패턴, 복사 할 데이터의 패턴 및 로컬 시스템의 데이터 대상 위치를 취할 스크립트에 대한 명령 줄 인수가 필요합니다. 좀 검색을했다
이러한
./grab_data system2 *05-14* ~/grabbed-data
로하고 나는 나의 다음 단계는 로컬 작업을 수행하는 각 시스템에 스크립트를 한 다음 각각의 원격 시스템에서 SSH 명령을 통해 스크립트를 실행하는 것입니다 생각 . 더 좋은 방법이 있습니까? 어떤 명령을 사용해야하며이 중첩 된 ssh 및 scp 문제를 자동화하는 일반적인 접근 방법은 무엇입니까?
필자의 설명이 약간 복잡 할 수 있다는 것을 알고 있으므로 제대로 설명하지 않은 부분에 대한 설명을 요청하십시오.
감사합니다.
인형극. 그게 전부입니다. –
또 다른 것은''pssh' (http://parallel-ssh.googlecode.com/git/doc/pssh-HOWTO.html)입니다. [this] (http://serverfault.com/questions/17931/what-is-a-good-modern-parallel-ssh-tool) 및 [this] (http://serverfault.com/questions/2533)도 참조하십시오./linux-running-the-same-command-on-many-machines-at-once)를 사용합니다. –