Linux 서버 한 대가 여러 서버에 파일 스크립트를 동시에 업로드합니다.
토폴로지 그림을 참고로 그렸습니다.
본고는 위의 그림에서 서버 0(서비스포트)이 서버 1 서버 2 서버 3(클라이언트)에게 동시에 파일을 전송하는 것을 실현하고자 한다.사전 설정 IP 주소:
서버 간 키 생성
# ssh-keygen // Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
e0:f6:59:eb:f7:a6:e3:2f:16:39:a2:14:61:31:4a:1f root@LinServ-1
ssh-keygen은 RSA와 DSA 두 가지 키를 포함하여 인증 키를 생성, 관리, 변환하는 데 사용됩니다.키 유형은 -t 옵션으로 지정할 수 있습니다.지정되지 않으면 기본적으로 SSH-2용 RSA 키를 생성합니다.
원격 서버로 키 파일 복사
ssh-copy-id -i /root/.ssh/id_rsa 192.168.1.110
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established.
RSA key fingerprint is 6e:34:d4:8c:fb:72:72:3a:49:7a:14:23:20:59:ea:28.
Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.1.11' (RSA) to the list of known hosts.
[email protected]'s password: ( 192.168.1.11 root )Now try logging into the machine, with "ssh '192.168.2.11'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.ssh-copy-id -i /root/.ssh/id_rsa 192.168.1.12 ssh-copy-id -i /root/.ssh/id_rsa 192.168.1.13
ssh-copy-id 명령은 로컬 ssh 키 파일을 원격 호스트에 대응하는 계정에 설치할 수 있습니다.
스크립트
#!/bin/bashwhile getopts f: OPT;
do
case $OPT in
f|+f)
files="$OPTARG $files"
;;
*)
echo "usage: `basename $0` [-f hostfile] <from> <to>"
exit 2
esac
done
shift `expr $OPTIND - 1`
if [ "" = "$files" ];
then
echo "usage: `basename $0` [-f hostfile] <from> <to>"
exit
fi
for file in $files
do
if [ ! -f "$file" ];
then
echo "no hostlist file:$file"
exit
fi
hosts="$hosts `cat $file`"
done
for host in $hosts;
do
echo "do $host"
scp $1 root@$host:$2
done
위의 스크립트 내용을 다음과 같이 저장합니다
remotecopy.sh
호스트 목록 파일 만들기
vim hostlist192.168.1.11
192.168.1.12
192.168.1.13
각 줄에 IP 주소를 하나씩 적어서 저장합니다.
서버 192.168.1.0에서 스크립트 실행
./remotecopy.sh -f /usr/local/hostlist /usr/local/test /usr/local/
/usr/local/hostlist
호스트 목록 파일 경로/usr/local/test
전송해야 할 파일/usr/local/
클라이언트의 위치로 전송합니다이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.