본문 바로가기

Server Story..../mysql

mysql 백업 및 자동삭제 스크립트

[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

#delete
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


만약 모두 백업한것이었다면 dbname에도 -A 로 쓴다.

/////////////////////DB 백업, 복구 예제////////////////////////////
  1. Linuxing 2005/06/26 02:25  address  modify / delete  reply

    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

  2. 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