쉘 스크립트를 사용하여 서로 다른 두 서버의 파일을 복사해야 합니다. scp 사용자 이름, IP 주소 및 폴더의 대상 경로를 사용해 보았습니다.
답변1
상술 한 바와 같이여기작은 쉘 스크립트를 작성할 수 있습니다.
for dest in $(<destinations.txt); do
scp /path/to/the/file_to_copy.txt ${dest}:/remote/path/
done
destinations.txt
작성할 문서를 작성하면 됩니다.모든 라인에서목적지 user@host
는 아래와 같습니다:
[email protected]
[email protected]
대상 경로( /remote/path/
)는 스크립트에 하드 코딩되어 있으므로 경로가 두 서버 모두에 존재해야 함을 의미합니다. 각 대상에 대한 전용 경로를 설정하려면 스크립트를 편집하고 :/remote/path/
의 각 항목에 대해 이를 제거하고 설정할 수 있습니다 destinations.txt
.
그렇지 않으면 살펴볼 수 있습니다병렬 scp
답변2
RSA를 사용하면 암호를 묻는 메시지 없이 파일을 보내는 스크립트를 작성할 수 있으며 스크립트에 암호를 입력할 필요가 없습니다. 컴퓨터에서 실행:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-copy-id loginname@server1Ip
ssh-copy-id loginname@server2Ip
스크립트에서:
scp file loginname@server1IP
scp file loginname@server2IP
로그인 이름과 로컬 사용자 이름이 동일한 경우 loginname@ 부분을 생략할 수 있습니다.