통합검색

Linux

[centOS] anacron 을 통해 웹소스&DB 백업 및 FTP로 원격 서버에 백업파일 저장

  • 2022.06.07 10:43:07

centos에서 웹사이트를 운영중인 경우
anacron을 통해 웹소스 파일과 DB를 백업 및 압축파일로 저장한 뒤
원격 서버로 FTP 접속을 통해 저장한다.
(FTP 원격 저장을 위해 ncftp 가 필요하다.)
 
# vi /etc/cron.daily/backup.sh

위와 같이 cron.daily 경로 내에 backup.sh 스크립트 파일을 생성한다.
cron.daily 폴더에 파일을 저장하는 경우 cron (anacron)이 매일 정해진 시간에 폴더내 스크립트 파일을 자동실행 하게 된다.
 
W_DATE=`date`

#백업날짜
BACKUP_DATE=`date +"%Y%m%d"`

#백업파일을 저장할 경로
DIR=/home/_backup
/bin/mkdir ${DIR}/${BACKUP_DATE}
BACKUP_DIR=${DIR}/${BACKUP_DATE}

#MariaDB 백업
/usr/bin/mysqldump -u[ROOT_ID] -p[ROOT_PWSSWORD] [백업할DB명] > ${BACKUP_DIR}/[백업될파일명]_${BACKUP_DATE}.sql

#웹소스백업
tar zcvf ${BACKUP_DIR}/[백업될파일명]_${BACKUP_DATE}.tar.gz /home/[백업할사용자] --exclude=/home/[백업할사용자]/WEB-INF

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

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

# 파일의 원격 FTP 백업
ncftpput -R -u [원격지FTP사용자 ID] -p [원격지FTP사용자 PW] -P 21 [원격지FTP 주소] /ServerBackup/ ${BACKUP_DIR}/

exit 0