소통을 디자인하는 아이티 카이로스입니다~
[목차]
1. ssh를 암호 없이 접속하는 방법을 학습 후
2. linux 서버에서 시놀로지 NAS로 rsync 명령어를 crontab에 등록하여 동기화는 방법을 설명합니다.
[환경]
CentOS7 x64
Synology NAS DS1517+ (DSM 6.2.1-23824 Update 6)
[1. ssh, rsync, scp를 암호 없이 접속하는 방법 ]
## 시놀로지 나스 제어판 > 사용자 > 고급 > 사용자 홈서비스를 활성화합니다.
## 시놀로지 나스 제어판 > 터미널 & SNMP 섹션에서 SSH를 활성화합니다.
## 시놀로지 나스 제어판 > 파일 서비스 > rsync 탭에서 RSync를 활성화합니다.
## 시놀로지 나스에 SSH 접속 후 ~/위치에 .ssh폴더를 생성합니다.
linux@server:~$ cd ~/
linux@server:~$ mkdir .ssh
linux@server:~$ ls -al
total 0
drwxrwxrwx+ 1 linux users 8 Mar 31 19:59 .
drwxrwxrwx+ 1 root root 32 Mar 31 19:56 ..
drwxrwxrwx+ 1 linux users 0 Mar 31 19:59 .ssh
## 리눅스 서버에서 아래 명령어로 개인키/공개키를 생성합니다. (만약 이미 가지고 있다면 생성할 필요가 없음)
ssh-keygen -t rsa
암호를 입력하라고 하면 빈 상태로 두고 엔터를 입력하세요.
그리고 아래 명령어로 권한 설정을 합니다.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
그리고 공개키를 나스로 전송합니다 :
ssh-copy-id -i ~/.ssh/id_rsa.pub -p SSH_PORT ADMIN_USER_ONLY@XXX.XXX.XXX.XXX
## 시놀로지 나스에 SSH로 연결합니다.( 비밀번호 입력 필요)
ssh -p SSH_PORT ADMIN_USER_ONLY@XXX.XXX.XXX.XXX
그리고 권한 설정을 합니다.
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
chmod u=rwx,g=rx,o=rx /volume1/homes/ADMIN_USER_NAME/
그러면 이제 ssh 연결(또는 rsync) 시 암호 없이 접속이 됩니다.
ssh -p SSH_PORT ADMIN_USER_ONLY@XXX.XXX.XXX.XXX
[2. linux 서버에서 시놀로지 NAS로 rsync 명령어를 crontab에 등록하여 동기화]
rsync 명령어
rsync -av -e 'ssh -p PORT_RSYNC' ORIGIN/FOLDER/TO/SYNC/ USER@XXX.XXX.XXX.XXX:/volume1/homes/USERNAME/DESTINATION/FOLDER/
crontab 편집
crontab -e
crontab 주기
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
매분 test.sh 실행
* * * * * /script/test.sh
매주 금 오전 5시 30분에 test.sh 실행
30 5 * * 5 /script/test.sh
매일 매시간 0분, 20분, 30분에 test.sh 를 실행
0,20,30 * * * * /script/test.sh
매일 1시 0분부터 30분까지 매분 tesh.sh 를 실행
0-30 1 * * * /script/test.sh
기업용 나스 서버 구축에 대한 문의 환영합니다~
desigh the communication, itkairos.
참고 :
https://gist.github.com/seignovert/c903c2facbf88243dac90de68be696ea
https://www.synology.com/ko-kr/knowledgebase/DSM/tutorial/Backup/How_to_back_up_Linux_computer_to_Synology_NAS#t2