Linux
일일 백업
aucd29
2013. 9. 26. 20:47
이젠, 서버에서 가장 중요한 백업에 대한 설정을 하겠다. RAID로 구성되어 있다면 좋겠지만, 비용 문제 때문에 대부분 이 방법을 사용하지 않는다. 일반적인 방법은 하루에 한번정도 압축해 둔다. 시간은 제일 사용자가 없을 시간을 선택한다. 세벽 4시정도^^ 그리구 만약을 위해 누적 백업할 것이다. 디스크 용량이 충분하다면, 백업 데이터는 많이 가지고 있는 것이 좋다. 자.. 그럼 이런 백업 정책을 구상했다면 이 백업정책을 프로그램으로 짠다. 다음과 같이^^;
아래 내용을 /root/backup.sh 파일에 넣는다.
#!/bin/bash
export Today="`date '+%y-%m-%d'`"
backup_dir="/backup/data"
backup_count="2" #### 백업본 보관 일 수 (2일간 보관)
########### delete 오래된 백업데이터 삭제
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -ge $backup_count ] ; then
/bin/rm -rf "$backup_dir/$dir"
fi
i=$(($i+1))
done
################ 새로운 디렉토리 생성 ####
/bin/mkdir -p ${backup_dir}/$Today
cd ${backup_dir}/$Today
########### home 디렉토리에 사용자별로 백업을 한다.
dirlists=`/bin/ls -t /home 2>/dev/null`
for dir in $dirlists ; do
tar cvfpz ${backup_dir}/$Today/$dir.tar.gz /home/$dir
done
####### 기타 디렉토리를 백업한다
tar cvfpz ${backup_dir}/$Today/usr.local.tar.gz /usr/local
tar cvfpz ${backup_dir}/$Today/etc.tar.gz /etc
tar cvfpz ${backup_dir}/$Today/var.named.tar.gz /var/named
tar cvfpz ${backup_dir}/$Today/var.spool.mail.tar.gz /var/spool/mail
############# 링크를 만들어 준다.####
rm -rf /backup/today
ln -s ${backup_dir}/$Today /backup/today
위의 내용을 복사해서 넣는다. 그리구 실행권한을 준다.
[root@doly root]# chmod 700 /root/backup.sh
그 다음 새벽 4시에 자동실행되게 crontab에서 설정한다.
[root@doly bin]# crontab -e
00 04 * * * '/root/backup.sh | mail -s "백업결과보고" 메일주소'
백업 결과를 메일로 받을 것이다. 그렇기 때문에 위에 메일주소 부분을 받고자 하는 메일주소 바꿔줘야한다
아래 내용을 /root/backup.sh 파일에 넣는다.
#!/bin/bash
export Today="`date '+%y-%m-%d'`"
backup_dir="/backup/data"
backup_count="2" #### 백업본 보관 일 수 (2일간 보관)
########### delete 오래된 백업데이터 삭제
dirlists=`/bin/ls -t $backup_dir 2>/dev/null`
i=1
for dir in $dirlists ; do
if [ "$i" -ge $backup_count ] ; then
/bin/rm -rf "$backup_dir/$dir"
fi
i=$(($i+1))
done
################ 새로운 디렉토리 생성 ####
/bin/mkdir -p ${backup_dir}/$Today
cd ${backup_dir}/$Today
########### home 디렉토리에 사용자별로 백업을 한다.
dirlists=`/bin/ls -t /home 2>/dev/null`
for dir in $dirlists ; do
tar cvfpz ${backup_dir}/$Today/$dir.tar.gz /home/$dir
done
####### 기타 디렉토리를 백업한다
tar cvfpz ${backup_dir}/$Today/usr.local.tar.gz /usr/local
tar cvfpz ${backup_dir}/$Today/etc.tar.gz /etc
tar cvfpz ${backup_dir}/$Today/var.named.tar.gz /var/named
tar cvfpz ${backup_dir}/$Today/var.spool.mail.tar.gz /var/spool/mail
############# 링크를 만들어 준다.####
rm -rf /backup/today
ln -s ${backup_dir}/$Today /backup/today
위의 내용을 복사해서 넣는다. 그리구 실행권한을 준다.
[root@doly root]# chmod 700 /root/backup.sh
그 다음 새벽 4시에 자동실행되게 crontab에서 설정한다.
[root@doly bin]# crontab -e
00 04 * * * '/root/backup.sh | mail -s "백업결과보고" 메일주소'
백업 결과를 메일로 받을 것이다. 그렇기 때문에 위에 메일주소 부분을 받고자 하는 메일주소 바꿔줘야한다