天天看点

备份数据库脚本备份数据库脚本

备份数据库脚本

#!/bin/sh
DBPATH=/server/backup
MYUSER=root
MYPASS=oldboy123
MYCMD="mysql -u$MYUSER -p$MYPASS"
MYDUMP="mysqldump -u$MYUSER -p$MYPASS"
[ ! -d $DBPATH ] && mkdir $DBPATH
for dbname in `$MYCMD -e "show databases;"|sed '1,2d'|egrep -v "mysql|schema"`
do
  $MYDUMP $dbname|gzip >$DBPATH/${dbname}_$(date +%F).sql.gz
done
           

原理是使用了 mysqldump 工具把数据库数据dump下来, 然后使用 gzip 工具压缩.

如果数据量特别大(体积以g计算)就不太建议使用这个工具, 因为 mysqldump 有锁表问题, 这里就不讨论了.

参考资料

  • 第11章代码《跟老男孩学习Linux运维:Shell高级编程实战》
  • gzip Advanced-usage
  • mysqldump的锁表的问题

继续阅读