저는 3개의 다른 원격 컴퓨터에 연결하고, 그들 사이에 파일을 복사한 다음, 최종 원격 컴퓨터에 머물면서 몇 가지 작업을 수행하려고 합니다. 이 프로세스를 자동화하는 데 도움이 되는 bash 스크립트를 만들려고 합니다. 이게 내가 하고 싶은 일이야
fname='file to be copied across these remote machines'
rmt1='remote machine1'
mt2='remote machine2'
rmt3='remote machine3'
#copy file from local to rmt1
scp -r $fname $rmt1
#log into rmt1
ssh -Y $rmt1
#from rmt1, copy file from rmt1 to rmt2
scp -r $fname $rmt2
#from rmt1 log into rmt2
ssh -Y $rmt2
#from rmt2 copy file from rmt2 to rmt3
scp -r $fname $rmt3
#from rmt2 log into rmt3
ssh -Y $rmt3
Then finally stay in rmt3 where I can do other things.
매번 너무 많은 내용을 입력할 필요가 없도록 이 프로세스를 자동화하는 데 도움이 되는 bash 스크립트가 필요합니다. 어떤 도움이라도 대단히 감사하겠습니다.노트 다음을 사용하여 공개/개인 키를 활성화했습니다.SSH 키 생성기따라서 이 중 어느 것도 비밀번호를 입력할 필요가 없습니다.
도움을 주셔서 감사합니다
답변1
로컬 호스트에 있는 하나의 개인 키가 OpenSSH의 최신 버전뿐만 아니라 세 개의 원격 호스트 모두에 대한 로그인을 허용한다고 가정하면 다음과 같습니다.
#!/bin/sh
fname='file to be copied across these remote machines'
rmt1='remote machine1'
rmt2='remote machine2'
rmt3='remote machine3'
scp -J "$rmt1,$rmt2" "$fname" "$rmt3":/target/path/
ssh -Y -J "$rmt1,$rmt2" "$rmt3"