备份数据库脚本
#!/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的锁表的问题