8. 일자별로 일별 로컬백업하는 간단한 쉘프로그램
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 3,024 조회
- 0 추천
-
목록
본문
8. 일자별로 일별 로컬백업하는 간단한 쉘프로그램
다음은 리눅스 서버에서 주로 하는 로컬백업을 일자별로 구분하여 계속저장하는 예를 보도록 하겠습니다. 백업하고자 하는 시스템상황은 다음과 같습니다.
. 백업스크립트명 : dailybackup.sh
. 백업저장 디렉토리 : /backup
. 백업대상 : APACHE, MYSQL, /home디렉토리, /etc디렉토리, /var디렉토리
. 백업주기 : 일별백업
. 백업방식 : cron에 의해 일자별로 백업 누적저장되도록 백업함.
자, 그럼 먼저 백업스크립트를 작성해 보겠습니다. 아래 스트립트의 파일명은 dailybackup.sh입니다. 그리고 이 스크립트파일에는 반드시 실행퍼미션이 있어야 합니다.
#!/bin/bash
export Today="`date '+%y-%m-%d'`"
rm -f *.tar.gz
cd /backup/
tar cvfpz $Today-usr.local.apache2.tar.gz /usr/local/apache2/ tar cvfpz $Today-usr.local.mysql.tar.gz /usr/local/mysql/ tar cvfpz $Today-etc.tar.gz /etc/ tar cvfpz $Today-home.tar.gz /home/ tar cvfpz $Today-var.tar.gz /var/ |
그리고 다음과 같이 root의 crontab에 매일 주기적으로 실행되도록 등록을 합니다.
[root@bible ~]# crontab -e
00 01 * * * su - root -c '/root/dailybackup.sh' >& /dev/null ~ ~ ~ |
즉, 위와 같이 root의 crontab에 등록해 두시면 매일 새벽 01시에 /root/dailybackup.sh 쉘스트립트가 자동실행되어 일별 백업된 결과를 /backup디렉토리에 저장하게 될 것입니다. 자, 그럼 이제 이틀동안의 백업된 결과를 보도록 하겠습니다.
먼저 첫째날의 /backup디렉토리내에 있는 백업결과를 확인한 것입니다.
[root@bible ~]# date Tue Feb 1 01:01:02 KST 2005 [root@bible ~]# [root@bible ~]# ls -l /backup total 46820 -rw-r--r-- 1 root root 7757123 Feb 1 01:0205-02-01-etc.tar.gz -rw-r--r-- 1 root root 4173734 Feb 1 01:0205-02-01-home.tar.gz -rw-r--r-- 1 root root 8728534 Feb 1 01:0105-02-01-usr.local.apache2.tar.gz -rw-r--r-- 1 root root 8651588 Feb 1 01:0205-02-01-usr.local.mysql.tar.gz -rw-r--r-- 1 root root 18533765 Feb 1 01:0305-02-01-var.tar.gz [root@bible ~]# |
위의 결과를 보시다시피 각 백업된 각 파일들 앞에 백업날짜가 지정되어 있으므로 언제 백업된 파일인가를 정확하게 알 수 있습니다.
그리고 이번에는 이틀째 백업된 내용을 /backup디렉토리에서 확인한 것입니다.
[root@bible ~]# date Wed Feb 2 01:01:02 KST 2005 [root@bible ~]#
[root@bible ~]# ls -l /backup/ total 93640 -rw-r--r-- 1 root root 7757123 Feb 1 01:0205-02-01-etc.tar.gz -rw-r--r-- 1 root root 4173734 Feb 1 01:0205-02-01-home.tar.gz -rw-r--r-- 1 root root 8728534 Feb 1 01:0105-02-01-usr.local.apache2.tar.gz -rw-r--r-- 1 root root 8651588 Feb 1 01:0205-02-01-usr.local.mysql.tar.gz -rw-r--r-- 1 root root 18533765 Feb 1 01:0305-02-01-var.tar.gz -rw-r--r-- 1 root root 7757085 Feb 2 01:0205-02-02-etc.tar.gz -rw-r--r-- 1 root root 4173734 Feb 2 01:0205-02-02-home.tar.gz -rw-r--r-- 1 root root 8728534 Feb 2 01:0105-02-02-usr.local.apache2.tar.gz -rw-r--r-- 1 root root 8651588 Feb 2 01:0105-02-02-usr.local.mysql.tar.gz -rw-r--r-- 1 root root 18533779 Feb 2 01:0305-02-02-var.tar.gz [root@bible ~]# |
위의 결과를 보시면 이틀동안 백업된 결과가 일자별로 저장되어 있습니다. 이와 같은 방법으로 백업을 하게 되면 언제 백업된 파일인가를 정확하게 알 수 있기 때문에 복구할 때에 굉장히 편리합니다.
이 쉘프로그램을
다음과 같이
업그레이드 해보시기 바랍니다.
이렇게 계속
일별백업되면 언젠가는 디스크용량이
꽉차게 되어
문제가 될
수 있습니다.
따라서 7일동안(또는 30일)만 누적백업되도록
하기 위하여
7일이전의 백업데이터를 자동으로
계속 삭제하는
기능을 추가해
보십시요. 즉, 7일간 계속
누적해서 저장하도록 하는
기능을 이
쉘프로그램을 참고하여 추가해
보시기 바랍니다.
관련자료
-
이전
-
다음