한 서버에서 두 개의 다른 서버로 파일을 복사하는 방법

한 서버에서 두 개의 다른 서버로 파일을 복사하는 방법

쉘 스크립트를 사용하여 서로 다른 두 서버의 파일을 복사해야 합니다. 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@ 부분을 생략할 수 있습니다.

관련 정보