메뉴 닫기

xe 백업 및 mysql DB 백업 스크립트

이 스크립트는 2015년 9월 9일경부터 제가 사용해온 XE 백업과 DB 백업 스크립트입니다.
사용하고 있는 XE 홈페이지를 백업해보기위해 만들었습니다.

주의 : 이 스크립트를 사용하여 발생하는 점은 본인 책임이며 스마일서브에서는 책임을 지지않습니다.
          만약 사용한다면 가급적 안에있는 명령어를 한번쯤은 사용해보시고 사용하시는것을 권장합니다.

이 스크립트를 사용하고 있는 서버의 구성

OS : Linux 6.6 ~ 6.7 버전
APM : RPM 버전으로 설치

이 스크립트를 사용하기전 준비해야할 사항

밑에 있는 백업스크립트를 그냥 사용하면 정상적으로 백업이 진행되지않습니다.
만약 사용하신다면 변경하셔야 할 사항은 아래와 같습니다.

실제로 사용하고 있는 xe 홈페이지 디렉토리로 변경
xe=”/home/xe/xe”

xe 백업파일을 저장할 디렉토리로 변경하고 백업 디렉토리를 생성합니다.
xeback=”/usr/local/src/xe_backup” 

# mkdir /usr/local/src/xe_backup
# mkdir /usr/local/src/xe_backup/xe  – xe 디렉토리가 tar.gz로 되어 저장됨
# mkdir /usr/local/src/xe_backup/DB – DB가 sql파일로 저장됨

가상서버의 경우 드라이브가 sda가 아닌 vda로 되어있는경우가 있습니다. 확인하고 변경하세요.
hdduse=`df -Th |grep sda1 |awk ‘{print $6}’ |sed s/%//` 

DB 백업의 경우 xeuser passwd1, passwd2를 수정하셔야합니다. 스크립트를 사용하기 전에
mysqldump를 따로 사용해보신후 정상적으로 DB가 백업이 되는지도 확인을 해보셔야합니다.
만약 xe를 설치시 root로 DB를 지정하셨다면 xeuser의 줄은 주석처리하거나 삭제를 진행하시면 됩니다.

mysqldump -u’root’ -p’passwd1′ -A > ${xeback}/DB/${sysdate}_root_backup.sql
mysqldump -u’xeuser’ -p’passwd2′ -A > ${xeback}/DB/${sysdate}_xeuser_backup.sql

vi /etc/crontab에 스크립트를 등록합니다. 작동할 시간과 날짜를 정하고 등록시키면 원하는 시간대에
스크립트가 동작하게 됩니다. 저의 경우 매주 월요일 1시 10분에 동작이 되도록 설정해놨습니다. 

10 1 * * 1 root sh /usr/local/src/xe_backup.sh

 

 

#!/bin/sh
xe=”/home/xe/xe”
xeback=”/usr/local/src/xe_backup”
sysdate=`date +%Y-%m-%d`
START=`date +%Y-%m-%d-%H%M`
hdduse=`df -Th |grep sda1 |awk ‘{print $6}’ |sed s/%//`

if [ “$hdduse” -lt “80” ]
then
echo “하드디스크 사용량 80% 이하 확인 백업 시작”

# XE 디렉토리 백업
tar cvfz ${xeback}/xe/${sysdate}_xe.tar.gz ${xe}

# DB 백업
mysqldump -u’root’ -p’passwd1′ -A > ${xeback}/DB/${sysdate}_root_backup.sql
mysqldump -u’xeuser’ -p’passwd2′ -A > ${xeback}/DB/${sysdate}_xeuser_backup.sql

# 백업 기록 남기기
echo “” >> /var/log/backup.log
echo “=========================================================================================” >> /var/log/backup.log
echo $START >> /var/log/backup.log
echo “=========================================================================================” >> /var/log/backup.log
echo “xe 백업 및 DB 백업 완료” >> /var/log/backup.log
echo “” >> /var/log/backup.log
echo “” >> /var/log/backup.log
echo “xe 용량 확인” >> /var/log/backup.log
cd ${xeback}/xe/
du -shc * >> /var/log/backup.log
echo “” >> /var/log/backup.log
echo “DB 용량 확인” >> /var/log/backup.log
cd ${xeback}/DB/
du -shc * >> /var/log/backup.log

echo “백업 종료”

else
if [ “$hdduse” -gt “80” ]
then
echo “하드디스크 사용량이 너무 높아서 백업 불가”
fi
fi

 

스크립트 사용시 나오는 결과

스크린샷, 2016-02-11 11:55:00

 

처음 서버의 용량을 확인후 “하드디스크 사용량 80% 이하 확인 백업 시작” 메세지를 띄운뒤
작업이 시작되고 백업이 완료된 화면입니다.

 

스크2

 

백업이 완료되면 DB의 경우 DB 디렉토리에 XE 디렉토리의 경우 xe 디렉토리에 저장됩니다.
경로는 설정해두신 xeback의 경로입니다.

 

스크3

DB (root 및 xe DB)

스크4

xe 디렉토리

 

스크5

 

스크립트가 실행되고 정상적으로 백업이 완료되면 /var/log/backup.log에서 백업사항을 확인할수있습니다.
워드프레스 백업에도 사용이 가능할것같지만 그 부분은 실험후 차후 수정하도록하겠습니다.

 

 

 

 

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x