본문으로 바로가기

Linux 자동백업 cron활용법

category Linux 2011. 2. 18. 09:50
백업은 컴퓨터에서 가장 중요한 범주에 속하는 작업 중에 하나라고 생각한다.

서버관리자라면 당연히 이 백업에 신경써야 하며 철저히 관리 해야 한다.

리눅스에서는 어떤 작업에 대한 자동화툴을 제공하고 있는데 그중에 하나가 cron이라는 것이다. 데몬이 물론 실행되고 있어야 한다
ntsysv에서 cron데몬이 자동으로 실행되는지 검사해보자. 보통의 경우라면 되어 있을 것이다.

내가 사용하는 방법은 명령어를 스크립트로 만들어 놓고 cron에서 그 명령어를 주기적으로 실행시키는 방법이다.

/root아래에 backup.sh 이라는 파일을 만들어 놓고 백업 명령어를 다음과 같이 주었다.

#!/bin/bash
/usr/local/mysql/bin/mysqldump -uroot -p***** mysql > mysql_db_bak_$(date +%Y%m%d).sql
/usr/local/mysql/bin/mysqldump -uyanemone -p***** yanemone > yanemone_db_bak_$(date +%Y%m%d).sql
mv *.sql /backup
tar cvfpz /backup/html_bak.tar.gz /var/www/html
tar cvfpz /backup/yanemone_html_bak.tar.gz /home/yanemone/public_html
tar cvfpz /backup/dichang_html_bak.tar.gz /home/dichang/public_html

백업할 내용이라던지 파일 이름은 자신의 상황에 맞게 주면 되겠다.

이렇게 하고 나면 backup.sh파일을 chmod 100 backup.sh로 단단히 무장하라.

그리고 crontab -e 명령으로 cron 작업을 명시하자
그럼 vi가 열리면서 편집이 가능하다

00 06 * * * /root/backup.sh

를 추가하고 :x 로 저장하고 나오자.
위의 작업은 매일 새벽 6시에 /root/backup.sh을 실행하라 라는 말이다.

그리고 /var/spool/cron/root가 있는지 확인해보자. 있다면 정상적으로 수행할 것이다.

팁팁팁
이렇게 하면 cron의 결과를 cron 데몬이 root에게 친절하게도 메일을 자꾸 날려준다. (x10)
정말 귀찮고 용량도 만만치 않다.
안오게 할 수 있다.

/etc/crontab이라는 파일을 열어보자
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=ROOT
HOME=/

부분이 있다. MAILTO=ROOT를 다음과 같이 고쳐보자
MAILTO=""

그러면 이제 루트에게 메일 날리는 친절함은 베풀지 않을 것이다. (x23)

이상으로 cron작업을 이용한 자동 백업에 대해서 알아보았다.
다음편에는 다른 리눅스 서버에서 백업 받아 놓은 파일을 자동으로 가져와 저장하는 rsync에 대해서 알아보도록 하겠다