웹마스터 팁

이 방법은 서버 관리자님들에게 해당 될수 있겠군요 ..
SSH . TELNET 이 허용돼는 서버에서도 잘 활용하면
유저도 자동 백업을 할수 있겠군요 ..

보통 DB 백업이라고 하면 mysqldump 가 떠올려지는데
저는 cron 을 이용하여 그냥 db 디렉토리 통채로 압축하여
백업 파티션에 놔두는것을 설명 하고자 합니다..(무식하죠? ^^)

db_backup.sh 라는 스크립트를 만듭니다.
#!/bin/sh
dat=`date +%Y%m%d`
tar zfc /backup/mysql_$dat.tar.gz /data  
// 저는 파티션 나눌때 sql /data 파티션을 따로 만들어 줬습니다.. 보통은 /var/db/mysql 에 db 디렉토리 일꺼에요 (freebsd)
chmod 600 /backup/mysql_$dat.tar.gz
라고 스크립트를 작성하신후 이 스크립트를
#chmod 100 db_backup.sh
라고 한후
|* /data 디렉토리에 있는 db 디렉토리들을 tar 로 압축하여 /backup 디렉토리에 mysql_날짜.tar.gz 로 저장하고
그 저장한 압축파일 권한을 600 으로 만든다는 스크립트입니다..

그런 다음 cron 에 등록 시켜 줘야 겠죠?

#crontab -e
00 05 * * * db_backup.sh

매일 새벽 5시에 db 백업 스크립트를 실행 하라는 뜻입니다..
cron daily 디렉토리에 넣어서 실행 되게끔 해주셔도 되겠죠

이렇게 하면 매일 5시에 백업을 하게 됩니다..  백업된 파일들이
2일 이상 아무 접근이 없을때 자동 삭제 되게끔 해주시면 더 깔끔하겠죠?
마찬가지로 스크립트를 하나 만듭니다..

#!/bin/sh
find /backup -ctime +2 -exec rm -f {} ;

하신후 역시 chmod 100 으로 권한 설정후

크론에 등록을 시켜 주시면 됩니다..
이렇게 하므르서 추후 문제가 생겼을때 압출을 풀어 그냥 해당 돼는 폴더를 덮어 씌우기만 하면됩니다.
용량도 크리 많이 차지 하지 않을꺼라 생각합니다..
잘못된 점이 있으면 지적해주시기 바랍니다..