참고 : http://cafe.naver.com/synologynas/4030


Synolocy 간 rsync를 이용 백업하는 방법입니다.

저는 108j와 110j를 가지고 있습니다.
110j가 성능이 108j보다 좋아 실서버로 사용중이고, 108j는 백업장비입니다.
110j (A) 에서 108j (B) 로 백업하는 것이죠.

108j가 자동으로 켜지는 기능이 되고 poweroff로 장비를 끄는 것이 가능하기 때문에
일정시간마다 자동으로 켜져 백업을 받고 꺼지는 것이 가능합니다.


1. A -> B 로 백업합니다.

2. B에 ssh를 사용하도록 관리자 페이지에서 설정합니다.

3. B에서 개인키/공용키를 생성합니다.
#ssh-keygen -t rsa
사용자 directory에 .ssh/id_rsa.pub가 생성됩니다.
이 파일을 A의 사용자 directory의 .ssh/authorized_keys라는 이름으로 복사해 놓습니다.

4. B에서 sshd_config 를 수정합니다.
/etc/ssh/sshd_config
(주석만 제거하면 됩니다.)

    Protocol                    2 

    HostKey /etc/ssh/ssh_host_rsa_key  

    ServerKeyBits                     1024

    PermitRootLogin                 yes

    RSAAuthentication                 yes
    PubkeyAuthentication                 yes
    AuthorizedKeysFile                .ssh/authorized_keys

    HostbasedAuthentication             no

    PasswordAuthentication                 no
    PermitEmptyPasswords                 no

    Subsystem    sftp    /usr/libexec/sftp-serve

ssh client 프로그램으로 B장비에 접속하려면 다음을 yes로 한다.

    PasswordAuthentication                 yes


5. B에서 ssh를 재시작한다. (관리자 페이지에서 정지/시작)

6. B에서 다음을 실행하면 A장비 /volume1/ 밑에 있는 모든 파일,디렉토리가  B장비 /volume1 로 옮겨진다.
   --delete 옵션을 주면 A에서 파일이 없어지면 B도 삭제되니 주의해야만 한다.

   rsync -avPzr --delete --stats -l -t -e ssh 사용자id@A의ip_address:/volume1/ /volume1

   ex) rsync -avPzr --delete --stats -l -t -e ssh root@192.168.1.100:/volume1/web/ /volume1/web
        /volume1/web에 있는 모든 파일, 디렉토리를 /volume1/web에 복사한다. (정확히 말하면 일치시킨다.)

7. 사용자 디렉토리에 backup.sh 작성

#!/bin/sh

rsync -avPzr --delete --stats -l -t -e ssh root@192.168.0.21:/volume1/web/ /volume1/web


8. ./backup.sh 을 실행하여 잘되는제 확인합니다.


9. /etc/crontab 을 수정하여 일정한 시간이 되면 backup.sh가 수행되도록 합니다.


10. backup.sh 끝에 poweroff를 넣으면 백업후 자동 종료까지 됩니다.


// OPTION //

-v : 진행 상황을 상세하게 보여줌 
-r : 지정한 디렉토리의 하위 디렉토리까지 재귀적으로 실행 
-l : 소프트 링크 보존 
-H : 하드 링크 보존 
-p : 버전 속성 보존 
-o : 소유 속성 보존(루트) 
-g : 그룹 속성 보존 
-t : 타임스탬프 보존 
-D : 디바이스 파일 보존(루트) 
-z : 데이터 압축 전송 
-b : 낡은 파일은 ~가 붙음 
-u : 추가된 파일만 전송 새 파일은 갱신하지 않음 
--existing : 추가된 파일은 전송하지 않고 갱신된 파일만 전송 
--delete : 서버에 없는 파일은 클라이언트에서도 삭제 
-a : 아카이브 모드. rlptgoD를 자동 지정 
-c : 서버와 클라이언트의 파일 크기를 세밀히 체크 
--stats : 결과를 보고 
-e ssh(rsh) : 전송 암호화 

# apt-get install ssh         / 보안 텔넷 ex) # ssh 192.168.0.2
# apt-get install vsftpd      / 범용 FTP서버

# ps -ef|grep vsftpd
# ps -ef|grep sshd
로 데몬이 구동되는지 확인한다.

vi /etc/vsftpd.conf  // 접근제어
--> anonymous_enable=NO
--> #local_enable = YES  // 주석제거
--> #write_enable = YES  // 주석제거

재시작
/etc/init.d/vsftpd restart


우분투 서버 8.1에서 sudo를 사용하는 것이 불편해서 root 패스워드를 설정해서 사용하는데
root로도 ssh접근이 가능하더군요.
root로 접속하는 것은 보안때문에 막는 것이 좋을 것 같아서 sshd 셋팅을 수정합니다.

[config 파일을 수정합니다.]
/etc/ssh/sshd_config 에서
PermitRootLogin yes를
PermitRootLogin no로 바꿔줍니다.

[sshd를 다시 시작합니다.]
ps -ef|grep sshd로 프로세스 id를 얻어서
kill [id번호] 하시고
/usr/sbin/sshd 로 다시 시작합니다.

또는

/etc/init.d/ssh restart

+ Recent posts