Linux

backup

REAOR 2018. 12. 7. 11:18

백업서버

vi /etc/crontab

40    23    *    *    *    root    /usr/bin/rsync -avzr    --delete 메인서버::메인서버계정 /메인서버에서백업할폴더/

systemctl restart crond

systemctl restart rsyncd

 

메인서버

ssh 메인서버

cd 백업폴더경로

vi backup.sh

 

백업스크립트

#!/bin/sh

#실행시각
NOW_DATE=`date`

#백업날짜
BACKUP_DATE=`date +"아이디_%Y%m%d"`
WWWROOT_DIR=/웹 경로

#백업파일을 저장할 경로
BACKUP_DIR=/백업저장경로

#MySQL백업
mysqldump -u 아이디 -p패스워드 아이디 > ${BACKUP_DIR}/${BACKUP_DATE}.sql

#웹소스백업
tar zcvf ${BACKUP_DIR}/${BACKUP_DATE}.tar.gz ${WWWROOT_DIR} --exclude=${WWWROOT_DIR}/WEB-INF

#소유주 및 권한변경(타 계정의 접근 차단용)
#chown -R 아이디.아이디 ${BACKUP_DIR}
#chmod -R 700 ${BACKUP_DIR}

# 오래된 백업데이터 삭제(3일 이상 된 것)
find ${BACKUP_DIR}/ -mtime +3 -exec rm -f {} \;

#메일 발송 (수신메일추가는 공백으로 구분하여 마지막에 열거, ※ 메일서비스가 있어야 작동)

echo "백업시각: ${NOW_DATE}\n백업경로: ${BACKUP_DIR}\n\n위와 같이 DB와 웹파일이 백업되었습니다." | mail -s '자동서버백업안내' 신메일주소

exit 0

 

vi /etc/crontab

08 04 * * * root /backup.sh가 존재하는 폴더

 

vi /etc/rsyncd.conf

[계정명]
comment = 원하는 이름
path = 백업 저장할 폴더
uid = root
gid = root
use chroot = yes
read only = yes
hosts allow = 127.0.0.1 백업서버 ip$
max connection = 10
timeout = 300

systemctl restart crond

systemctl restart rsyncd