나만의 쉬운 예:
101 서버에서 108 서버로 scp를 이용하여 test.sh 파일을 복사할 경우,
101: scp test.sh root@108:/root/test.sh
-> passworld 물어본다. ;;
1. 101서버에서 공개키를 만든다. (위과정대로;;)
2. 1.에서 만들어진 공개키(*.pub) 파일을 108 서버의 /root/.ssh/authorized_keys로 copy한다.
3. 101서버에서 scp test.sh root@108:/root/test.sh 명령을 시도한다.
-> password 안 물어본다. ^^
목적
여러개의 같은 서버(클러스터/LVM등) 가 있을 때 변경된 내용을 여러개의 다른 서버에서 적용하기 위함. (CVS처럼 사용하기 위한 경우도 종종 있음)
사양/설치
Redhat Fedora core 2 에서 freshrpms의 apt-get 을 설치하고 rsync 를 설치
rsync(TCP/873)서버를 이용하거나 SSH를 이용해서 전송 받을 수 있음.
그 중에서 SSH를 이용한 인증/접속을 이용할 것임.
설정
SSH를 이용하기 때문에 /etc/rsync.conf 등을 생성하거나 수정할 필요가 없다. 그리고 따로 데몬을 돌릴 필요도 없다.
원본이 들어있는 서버를 www1 라고 하고 백업을 만들 (target)서버를 www2 라고 하면
1. 우선 ssh key file을 생성한다.
[root@www2 ~#] ssh-keygen -d
실행하면 어디다 저장할 것인지 패스워드는 어떻게 할것인지 물어보는데 패스워드는 그냥 엔터를 치면 나중에 패스워드 없이 진행할 수가 있다.(이게 더 편하다)
2. www1에 복사
[root@www2 ~#] scp -p /root/.ssh/id_dsa.pub root@www1:~/.ssh/authorized_keys2
3. password file 작성
cat > .rsync_password 등으로 이름을 적당히 만들어서 패스워드(root)를 입력
실행
옵션을 보면 -a(archive)와 -z(comress)는 기본적으로 쓰이고, 추가로 --delete 와 -u(update)는 필요에 따라 사용할 수 있다.(쉘에서 실행하면 -v(verbose)로 전송되는 내용을 자세히 볼 수 있다)
[root@www2 ~#] rsync -azv -e ssh --password-file=/root/.rsync_password www1:/home/* /home/