
서버를 운영하게되면 가장 중요한 부분이 하드웨어 문제가 발생할시 빠른 복구를 통한 서비스(Service) 재게일 것이다.
클라우드 서버를 이용하게 되면 그러한 일들이 발생할 경우가 거의 없겠으나,
여러가지 이유로 자체서버를 유지해야 할 경우엔 물리적인 장비의 고장시 대처가 필요하게되고 이러한 이유로 데이터
소스파일 및 데이터베이스의 백업은 중요하다 하겠다.
데이터 베이스의 백업
1. sql 데이터 백업
첫번째로 해야할일은 데이터 백업을 실행하게된 스크립트 화일의 생성이다
$ vi /home/shell/dbbackup.sh
에디터로 파일을 생성하고 아래와 같이 작성하고 접속계정등 일부 수정하고
저장한다 wq
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/backup/
delete_date="+15" # 6일이 지난 백업본 삭제
### 예전 자료 삭제 ###
find $BACKUP_DIR*.tar.gz -mtime $delete_date -print -exec rm -rf {} ;
### 데이터 백업 ###
mysqldump -u유저 -p비번 데이터베이스명 > $BACKUP_DIR"backup_"$DATE.sql
### 압축파일명 ###
fn1="blog_backup_$(date +%Y-%m-%d).database.tar.gz"
#sleep 30s
### 백업파일 압축 ###
tar cvfz ${BACKUP_DIR}/$fn1 /home/backup/backup_${DATE}.sql
DATE=$(date +%Y%m%d)
BACKUP_DIR=/home/backup/
delete_date="+15" # 6일이 지난 백업본 삭제
### 예전 자료 삭제 ###
find $BACKUP_DIR*.tar.gz -mtime $delete_date -print -exec rm -rf {} ;
### 데이터 백업 ###
mysqldump -u유저 -p비번 데이터베이스명 > $BACKUP_DIR"backup_"$DATE.sql
### 압축파일명 ###
fn1="blog_backup_$(date +%Y-%m-%d).database.tar.gz"
#sleep 30s
### 백업파일 압축 ###
tar cvfz ${BACKUP_DIR}/$fn1 /home/backup/backup_${DATE}.sql

$ chmod 755 /home/shell/dbbackup.sh
저장한 파일은 실행이 가능한 파일로 퍼미션 조정을 해준다.
2. 실행확인
이렇게 작업된 파일을 실행하여 백업될 폴더에 해당명의 sql 파일과 tar.gz 파일이 생성
이 되는지 확인하자

3. 생성된 스크립트 파일의 스케쥴 작업

$ crontab -e
매일 저녁 11시 30분 지정된 폴더에 백업되도록 설정하였고, 파일의 중요도 및 필요에따라
스케쥴은 조정하여 백업을 진행한다
4. 백업된 파일 ftp 전송
외부의 백업파일저장 전용 서버를 만들고 해당 서버에서 백업된 파일을 스케쥴에 맞게 가져오는
쉡스크립트 파일을 생성하고 cron 등록하자

#! /bin/sh
now=$(date +"%Y%m%d")
BACKUP_DIR=/home/backup/
ftp -vn << EOF
open 도메인,ip
user 유저 패스워드
binary
promp off
cd /home/backup
get backup_$now.database.tar.gz /home/backup/backup_$now.database.tar.gz
bye
EOF
now=$(date +"%Y%m%d")
BACKUP_DIR=/home/backup/
ftp -vn << EOF
open 도메인,ip
user 유저 패스워드
binary
promp off
cd /home/backup
get backup_$now.database.tar.gz /home/backup/backup_$now.database.tar.gz
bye
EOF
hit: 4

Leave a comment