查出所有mysql库,遍历mysql库,调用mysqldump备份所有数据库(跳过不需备份的数据库),计划一天调用一次
#!/bin/bash
#定义日期,方便存储的时候更加方便寻找到每天备份的数据库
DATE=$(date +%Y-%m-%d)
#定义存放路径,自己定义即可
DES=/data/bak_store/dumps/${DATE}
#mysql_ip
mysql_host=host
#定义mysql用户名称
mysql_user=test
#mysql密码,根据需要修改密码
mysql_pwd=pwd
#判断存放备份数据库的路径是否存在,若不存在则自动创建
if [ ! -d "$DES" ] ; then
mkdir -p "${DES}"
fi
#获取数据库名称列表
#DB=$(mysql -u $mysql_user -p$mysql_pwd -e 'show databases')
DB=`mysql -h ${
mysql_host} -u${
mysql_user} -p${
mysql_pwd} -e 'show databases'`
#遍历mysql库
for database in $DB
do
#information_schema,Database库不备份,其他库均备份
if [ ! $database == "information_schema" ] && [ ! $database == "Database" ];then
#完全备份的方式进行备份
echo "start dumping ${database}"
mysqldump --opt -h$mysql_host -u$mysql_user -p$mysql_pwd $database | bzip2 > "$DES/${database}_${DATE}_mysql_bak.bz2"
echo "dump ${database} end"
fi
done