[Linux] 자동 백업 스크립트, DB백업, 복구
##################################
################# 로그파일 삭제 #########
##################################
#!/bin/sh
#delete Log File
find /var/log/au* -ctime +3 -exec rm -f {} \;
find /var/log/apache2/err* -ctime +3 -exec rm -f {} \;
find /var/log/sys* -ctime +3 -exec rm -f {} \;
find /var/log/cro* -ctime +3 -exec rm -f {} \;
find /var/log/daem* -ctime +3 -exec rm -f {} \;
find /var/log/ker* -ctime +3 -exec rm -f {} \;
find /var/log/lpr* -ctime +3 -exec rm -f {} \;
find /var/log/mai* -ctime +3 -exec rm -f {} \;
find /var/log/user* -ctime +3 -exec rm -f {} \;
find /var/log/deb* -ctime +3 -exec rm -f {} \;
find /var/log/mess* -ctime +3 -exec rm -f {} \;
find /var/log/mysql/err* -ctime +3 -exec rm -f {} \;
find /var/webmin/mini* -ctime +3 -exec rm -f {} \;
#############################################
> vi wwwbackup.sh
해서 다음과 같이 작성한다.
#!/bin/sh
#mysql DB
mysqldump -u root -p[비번] -A(전부백업한다면) > /backup/mysql_db_bak_$(date +%Y%m%d).sql
mysqldump -u root -p[비번] junn(DB명) > /backup/junn_db_bak_$(date +%Y%m%d).sql
#html
tar cvfpz /backup/html_bak_$(date +%Y%m%d).tar.gz /home
find /backup -ctime +3 -exec rm -f {} \;
주의할 점은 $(date +%Y~~)하는 곳에서 date 이후 꼭 한칸을 띄울 것
그 다음에 cron 에 등록해야 한다. 자세한 설명은 http://linuxer.pe.kr/tag/cron 참고
(no crontab for root 라는 문구가 나온다면 등록된 것이 없어서 그러니 신경쓰지 말자)
crontab -e 해서 0 3 * * * /backup/wwwbackup.sh
라고 등록해주었다.
잘되었는지는 내일 확인해보도록 해야겠다.
=> 작동을 안했다-_- chmod 755를 안해줘서 실행이 안된 것 같다는 선배의 말씀
그냥 귀찮아서 etc/cron.daily 라는 폴더에 집어넣고 chmod 755해줬다.
==> 작동했다
복구는
mysql -uuser -ppassword dbname < backup.sql
/////////////////////DB 백업, 복구 예제////////////////////////////
-
1. 모든 DB 백업<br />
mysqldump -u root -p -A > all.sql<br />
<br />
2. 특정 DB 백업<br />
mysqldump -u root -p [DB명] > dbA.sql<br />
<br />
3. 특정 Table 백업<br />
mysqldump - u root -p [DB명] [Table명] > tableA.sql<br />
<br />
4. 복구<br />
mysql -u root -p [target DB명] < tableA.sql - Linuxing 2005/06/26 02:26 address modify / delete reply
// 모든 디비 백업<br />
# mysqldump -u root -p --all-databases > AllDB_Backup.dump<br />
<br />
// 디비 하나만 백업(e.g. mysql이라는 디비를 백업)<br />
# mysqldump -u root -p mysql > mysql_Backup.dump<br />
<br />
// 디비에서 테이블 하나만 백업<br />
# mysqldump -u root -p mysql user > mysql_userTB_Backup.dump<br />
<br />
<br />
<br />
// 복구는 어떻게 하는가!!<br />
. --all-databases 를 사용하여 모든디비백업을 한 경우<br />
# mysql -u root -p < AllDB_Backup.dump<br />
<br />
. 디비 하나만 백업한 경우(디비는 생성되어 있어야 함.)<br />
# mysql -u root -p mysql < mysql_Backup.dump<br />
<br />
. 테이블 백업한 경우(디비는 생성이 되어있어야 함.)<br />
# mysql -u root -p mysql < mysql_userTB_Backup.dump
'Server Story.... > mysql' 카테고리의 다른 글
mysql backup (0) | 2014.04.23 |
---|---|
DB 자동저장 스크립트 (0) | 2011.01.26 |
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법 (1) | 2010.12.17 |
my sql 튜닝 - 체크사항 (0) | 2010.09.10 |