本文作者:念宗

使用mysqlhotcopy每天备份完整的mysql数据库脚本

念宗 17年前 ( 2008-08-15 ) 3676 抢沙发
摘要: 以下为mysql备份脚本,因使用的mysqlhotcopy命令,所以只适用于MYISAM引擎数据库,并且建议在100G容量以内的数据库使用。本脚本做的是每天完全备份。[root@m...

以下为mysql备份脚本,因使用的mysqlhotcopy命令,所以只适用于MYISAM引擎数据库,并且建议在100G容量以内的数据库使用。本脚本做的是每天完全备份。
[root@mysql mysql_backup]# cat mysqlbackup.sh 
#!/bin/bash
#Shell Name: mysqlbackup.sh.
#MySQL Daily Backup by mysqlhotcopy tools.
#Last Modify: 2008-7-30 Writen by daihaijun.
#crontab -e 
#0 4 * * * /databak/mysql_backup/mysqlbackup.sh
#Shell will run at 4:00 everyday.
MYSQLBACKUPDIR=/databak/mysql_backup
SHELLDIR=$MYSQLBACKUPDIR/mysqlbackup.sh
MYSQLDATADIR=/var/lib/mysql
MYSQLBACKUPLOG=$MYSQLBACKUPDIR/MySQLBackup.log
DATE=`date -I`
mkdir -p $MYSQLBACKUPDIR/MySQL-$DATE
if [ -e "$MYSQLBACKUPLOG" ];then
  continue
else
touch $MYSQLBACKUPLOG
fi
echo "------------Backup start at `date +%Y-%m-%d_%H:%M:%S`-----\
---------" >>$MYSQLBACKUPLOG
for DB in `find $MYSQLDATADIR -type d | \
grep -v '^/var/lib/mysql$'| \
sed  "s/\/var\/lib\/mysql\///" | \
sed "s/test//"`;do
if [ "x$DB" == "x" ];then
   continue
else
   /usr/bin/mysqlhotcopy -q $DB $MYSQLBACKUPDIR/MySQL-$DATE
   echo "`date +%Y-%m-%d_%H:%M:%S` Database:$DB mysqlhotcopy backup success!" >>$MYSQLBACKUPLOG
fi;
done
#tar
for BAKDB in `find $MYSQLBACKUPDIR/MySQL-$DATE/ -type d | \
   grep -v '^/databak/mysql_backup/MySQL-'$DATE'$'| \
   sed "s/\/databak\/mysql_backup\/MySQL-$DATE\///"`;
do
   cd $MYSQLBACKUPDIR/MySQL-$DATE
   tar -zcf $BAKDB-$DATE.tar.gz $BAKDB
   echo "`date +%Y-%m-%d_%H:%M:%S` Database:$BAKDB tar success!" >>$MYSQLBACKUPLOG
   rm -fr $MYSQLBACKUPDIR/MySQL-$DATE/$BAKDB
   echo "`date +%Y-%m-%d_%H:%M:%S` Database:$BAKDB Remove success!" >>$MYSQLBACKUPLOG;
done
echo "------------Backup end at `date +%Y-%m-%d_%H:%M:%S`-----\
---------" >>$MYSQLBACKUPLOG
exit 0

文章版权及转载声明:

作者:念宗本文地址:http://pyops.net/?id=38发布于 17年前 ( 2008-08-15 )
文章转载或复制请以超链接形式并注明出处运维之道

分享到: 网站分享代码

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

验证码

评论列表 (暂无评论,3676人围观)参与讨论

还没有评论,来说两句吧...