scp 파일을 여러 서버에 동시에 전송

scp 파일을 여러 서버에 동시에 전송

server.txt라는 파일이 있습니다.

다음과 같은 서버가 있다고 가정하면 더 많은 서버가 있을 수 있습니다. server1 server2 server3 server4

/tmp/ 위치에 파일(scp 명령을 사용하는 모든 서버의 file.txt)을 복사하는 방법.

답변1

가정 bash:

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/
done

병렬 모드(server.txt가 큰 경우에는 이 모드를 사용하지 마십시오. 대역폭이 부족하고 연결이 중단된 다음 성공한 것과 실패한 것을 파악하는 데 어려움을 겪을 수 있습니다):

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/ &
done
wait

요청 시 이제 비밀번호 지원이 제공됩니다.

while read SERVER PASSWORD
do
  sshpass -p "$PASSWORD" scp file.txt "$SERVER":/tmp/
done <./server.txt

server.txt첫 번째 줄에는 첫 번째 서버의 호스트 이름, 공백, 첫 번째 서버의 비밀번호 등을 입력합니다 .

관련 정보