backup
백업서버
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