mysql 은 데이타베이스를 디렉토리와 화일형식으로 저장합니다. 그것을 이용하여 좀 무식하지만 빠른 백업방법을 소개합니다. <pre> [root@mexplorer /root]# cat backupdb.sh #!/bin/bash # # 아래 방법은 무식한 mysql 백업 방법입니다. 그러나 빠르구요. # 생성되는 화일은 20010305.tar.gz 와 같은 화일이 저장됩니다. # 가장최근 화일만 저장되게 되어 있습니다. 만약 이전 백업을 유지하려면 # 맨 아래 for 문 부분을 삭제 하시면 됩니다. # 백업하는 방법은 # mysql 을 정지시키고 # tar xvfzp /var/backup/20010305.tar.gz # 로 하고 압축이 풀린 디렉토리에서 *.pid 와 *.sock 를 삭제하고 mysql 을 작동하시면 됩니다. # 이 화일은 /etc/cron.daily 밑에 두시면 자동 백업됩니다. DATA_DIR=/var/lib/mysql BACKUP_DIR=/var/backup DATE=$(date +%Y%m%d) tar cvfzp $BACKUP_DIR/$DATE.tar.gz $DATA_DIR for i in $( ls $BACKUP_DIR ); do if [ -f $BACKUP_DIR/$i ]; then if [ $i != $DATE.tar.gz ]; then rm -f $BACKUP_DIR/$i fi fi done [root@mexplorer /root]# </pre> 위 방법은 좀 편법인 방법이기도 하지만 데이타 용량이 크더라도 서버 백업부하를 적게 차지합니다. : 안녕하세요. : 전체 모든 db를 백업할때는 --all-databases > 파일명 하시면 됩니다. : ilubzzon : : : : : : : : <hr> : : : #!/bin/bash : : : BACKUP_DIR=/var/backup : : : FILE_PFX =MY_DB : : : : : : DATE=$(date +%Y%m%d) : : : OF = $FILE_PFX-$DATE.sql : : : rm -rf $BACKUP_DIR/$FILE_PFX-*.sql : : : : : : mysqldump -uUSER -pPASS DB_NAME > $BACKUP_DIR/$OF : : : <hr> : : : : : : 간단히 만들어 보았습니다. : : : 백업데이타는 MY_DB-20010228.sql 이런식으로 : : : /var/backup 밑에 생깁니다. : : : : : : BACKUP_DIR 은 백업받고 싶은 디렉토리 이구요.. : : : FILE_PFX 은 저장할 파일 이름의 프리픽스 정도.. : : : 날마다 백업된걸 가지고 있고 싶으시면(충분한 하드용량이 된다면) : : : rm -rf ........ 이줄은 주석처리해도 무방.. : : : mysqldump 다음은 알죠? 사용자명과 패스워드 DB명.. : : : : : : /etc/cron.daily 밑에 복사해주시고.. : : : 실행 권한 주시면 됩니다. : : : : ---------------------------------------------------- : : : : 안 돌아가는 머리 쥐어 짜면서 만들어 보았습니다. : : : : ------ /etc/cron.daily/mysqlcump.cron ------------------- : : #!/bin/sh : : # : : # : : ## Chilbong, Kim <san2 at linuxchannel.net> : : ## 2001.03.01 : : ## http://www.linuxchannel.net : : ## : : ## : : ########################################### : : ## : : ## This file name : "mysqldump.cron" : : ## cp mysqldump.cron /etc/cron.daily/ : : ## chmod 700 /etc/cron.daily/mysqldump.cron : : ## : : ########################################### : : ## user setting : : ## : : ## : : mysql_host="localhost" : : mysql_rootpasswd="xxxxxxx" : : backupdir="/var/backup" : : mysql_backupdir="${backupdir}/mysqldump" : : mysql_dump="/usr/local/mysql/bin/mysqldump" : : mysql_show="/usr/local/mysql/bin/mysqlshow" : : ## : : ## Are you compress 'xxxx-2001xxxx-xx.sql' ? : : ## 1 = yes(xxxx-2001xxxx-xx.sql.gz) : : ## 0 = no : : db_compress="1" : : ## : : ## end user setting !!! : : ############################################ : : : : sysdtime=`date +%Y%m%d-%H` : : mysql_connect="-h $mysql_host -u root -p$mysql_rootpasswd" : : mysql_DBs=`$mysql_show $mysql_connect | egrep -v "(Databases|+)" | awk '{print $2}' 2>/dev/null` : : : : mysql_dump_work() { : : mysql_each_DB="$1" : : mysql_dump_file="${mysql_backupdir}/${mysql_each_DB}-${sysdtime}.sql" : : $mysql_dump $mysql_each_DB > $mysql_dump_file : : if [ "$db_compress" = "1" ] ; then : : gzip -9 $mysql_dump_file : : fi : : } : : : : if [ "$mysql_DBs" != "" ] ; then : : : : if [ ! -d "$mysql_backupdir" ] ; then : : mkdir -p "$mysql_backupdir" : : chmod 700 "$mysql_backupdir" : : fi : : : : for mysql_DB in $mysql_DBs ; do : : mysql_dump_work $mysql_DB : : done : : : : chmod -R 600 $mysql_backupdir : : #chown -R root $mysql_backupdir : : : : fi : : : : exit 0 : : ---------------------------------------------------------------- : : : : -- : : LinuxChannel.NET : : -- : -- 서명이라..