본문 바로가기
  • 커뮤니티
  • 블로그
  • 북마크
IT/나스(NAS)

[나스]시놀로지 NAS에 웹서버 구축하기 5탄(Data 파일 및 DB 자동백업 하기)

by 빽짱구 2022. 12. 24.

시놀로지 NAS에 웹서버 구축하기 5탄 - 사이트 Data 파일 및 DB 자동백업 하는 방법입니다.

 

 

사이트를 운영하다 보면 백업은 필수인데요.

설명하기 쉽게 사이트 도메인이 test.com 이라고 가정하겠습니다.

폴더 구조가 test > www 안에 파일들이 존재하고 www가 사이트에 루트라고 하겠습니다.

 

사이트내 파일(데이터)들은 www 안에 존재하기 때문에  www 폴더를 통째로 백업을 하게 되며, 데이터 파일 백업과 함께 DB도 백업을 할것입니다.

 

물리적으로 시놀리지 volume1에 웹서버를 구축했다면, 백업은 volume2에 할것입니다.

즉, volume1 (HDD)가 문제가 생겼을때 백업파일은 다른 볼륨(volume2)에 백업하는것입니다. (포인트는 웹서버 볼륨과 백업 볼륨이 달라야 하는것입니다.)

그래야 웹서버에 문제가 생기더라도 나중에 복구가 가능하겠죠?

 

백업 파일 생성하기

먼저 데이터와 DB를 백업할 수 있는 명령어 소스가 있는 파일을 만들어줍니다.

 

방법.

메모장이나 사용하시는 소스 편집 프로그램을 여시고, 아래 내용을 넣고 backup.sh 파일로 저장합니다.

(파일명은 아무거나 해도 되나, 확장자는 .sh로 해주셔야합니다.)

 

DATE=`date +%Y%m%d`
PREV_DATE=`date --date '7 days ago' +%Y%m%d`
mysqldump -u디비유저명 -p디비비번 디비명 > /volume2/backup/web/사이트폴더명/db_backup_${DATE}.sql

#압축파일생성
tar cvfz /volume2/backup/web/사이트폴더명/data_backup_${DATE}.tar.gz /volume1/web/사이트/www

#권한설정
chmod 644 /volume2/backup/web/사이트폴더명/db_backup_${DATE}.sql
chmod 644 /volume2/backup/web/사이트폴더명/data_backup_${DATE}.tar.gz

rm -rf  /volume2/backup/web/사이트폴더명/${PREV_DATE}

find /volume2/backup/web/사이트폴더명/ -ctime +7 -exec rm -f {} \;

 

설명을 드리자면, 7일동안 백업파일을 보관할것이며, 7일 이후에 데이터와 DB는 삭제한다는 의미입니다.

위와같은 경우는 volume2에 backup 폴더를 만들고 구분하기 쉽게 web 폴더를 만들어서 백업본을 보관할것입니다.

 

- 사이트주소가 'test.com'
- DB 유저명과 DB명이 'test'

- DB 비번이 '1111' 이라고 가정했을경우

- 데이터가 test > www 에 파일이 있을경우

 

- DB 백업
mysqldump -utest -p1111 test > /volume2/backup/web/test.com/db_backup_${DATE}.sql

 

이런식으로 변경해주시면 됩니다. 여러 사이트를 운영할수도 있으니 폴더명은 구분하기 쉽게 도메인과 동일하게 폴더를 생성했습니다.

volume2 하위에 폴더들은 시놀로지에서 먼저 생성해주셔야합니다.

 

위와 같은 폴더 구조입니다.

 

반응형

 

- Data 백업

tar cvfz /volume2/backup/web/test.com/data_backup_${DATE}.tar.gz /volume1/web/test/www

 

데이터도 DB백업과 동일한 위치에 백업을 하고 백업할 사이트 폴더위치를 작성해줍니다.

햇갈릴수 있으니 위치를 잘 확인하셔야합니다. (서론에 남긴 글 참고)

 

소스 수정이 완료되었으면, backup.sh 파일은 ftp를 통해 업로드해줍니다.

 

업로드 위치는 www 안이 아닌, www와 같은 위치입니다.

 

스케줄링 설정 (자동백업 실행)

이제 시놀로지 DSM에 접속해서 해당파일을 원하는 날짜와 시간대에 자동으로 백업할 예정입니다.

 

DSM > 제어판 > 작업 스케줄러 메뉴로 접근합니다.

 

 

작업 스케줄러 > 생성 > 예약된 작업 > 사용자 정의 스크립트를 클릭합니다.

 

일반탭에서 어떤 작입인지 구분하기 쉽게 작업명을 정해줍니다. 저같은 경우는 'web backup'라고 정했고, 사용자는 백업 권한이 있는 사용자로 선택해줍니다.

 

스케줄탭에서는 언제 백업을 할것인지, 그리고 시간대는 언제로 할것인지 설정해줍니다.

위에 예시는 매일 오전 5시에 스케줄링(백업)을 한다는 의미입니다.

 

 

작업설정탭에서는 위에 설정한 매일 오전5시에 실행한 스크립트 명령어를 입력해줍니다.

bash /volume1/web/test/backup.sh

 

위에서 만든 backup.sh를 실행해야하기 때문에 ftp를 통해 업로드한 위치를 작성해주면 됩니다.

만약 백업이 잘됐는지 메일로 상세 정보를 받고 싶다면 알림을 체크하면 됩니다.

 

그리고 마지막으로 실행이 잘되는지 바로 확인하기 위해선 터미널에서 backup.sh 파일을 실행해보면 알수 있습니다.

admin@webmini_nas:/volume1/web/test$ ./backup.sh

 

실행을 하면 데이터와 DB가 백업이 쭈욱~ 되며 위에서 설정한 백업폴더에 백업본이 존재하게 됩니다.

 

 

시놀로지 나스에 웹서버를 구축하신 분들은 꼭 백업설정을 해서 보관하시기 바랍니다.

728x90