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
첫 번째 줄에는 첫 번째 서버의 호스트 이름, 공백, 첫 번째 서버의 비밀번호 등을 입력합니다 .