更改用户名、密码和所需备份的数据库名即可。
mysqlbackup.sh
#!/bin/sh
Domainnameaddress="\033[31m 13812865396@163.com \033[0m"
echo "+------------------------------------------------------------------------+"
echo "+------------------------------------------------------------------------+"
echo "| Automatic backup of databases and programs on Linux |"
echo "+------------------------------------------------------------------------+"
echo "| For more information please visit $Domainnameaddress |"
echo "+------------------------------------------------------------------------+"
#环境变量
DATE=$(date +%Y%m%d)
DATES=$(date +%Y%m%d_%H%M%S)
mysql_host="127.0.0.1"
#数据库用户名
mysql_user="root"
#数据库密码
mysql_passwd="root"
#需要备份的数据库名 多个库用空格隔开
mysql_databases="test1 test2"
mysql_cocker="/var/run/mysqld/mysqld.sock"
MysqlZIP_NAME="SigerMysqlAll_"$DATES".zip"
contents="/home/backup/"
inservers="vim wget zip unzip lrzsz"
#安装 $inservers 中的服务
for inserver in $inservers
do
inserverslist=`rpm -qa | grep $inserver`
if [ `rpm -qa | grep $inserver |wc -l` -eq 0 ];
then
echo -e "\033[32m $inserver \033[0m"
yum install $inserver -y
else
echo -e "\033[32m already installed $inserver \033[0m"
fi
done
#创建contents目录
if [ ! -x "$contents" ];
then
echo "\033[31m $contents 目录未创建,正在创建$contents目录... \033[0m"
/bin/mkdir -p "$contents"
else
echo "\033[32m 已创建 $contents 目录... \033[0m"
fi
#数据库备份
for databases in $mysql_databases
do
echo "\033[32m 正在备份 $databases 数据库... \033[0m"
mysqldump -t $databases -u $mysql_user -p$mysql_passwd > /home/backup/"$databases"_"$DATE".sql
done
# do
# echo -e "\033[32m 正在备份 $databases 数据库... \033[0m"
# mysqldump --socket=$mysql_cocker -t $databases -u $mysql_user -p$mysql_passwd > /home/backup/"$databases"_"$DATE".sql
# done
#打包当天备份文件到zip
cd $contents
echo "\033[32m 正在压缩全局数据库.... \033[0m"
/usr/bin/zip -r -m -p -9 $MysqlZIP_NAME *_$DATE.sql
#删除大于七天的备份文件
find $contents/*.zip -mtime +7 -exec rm -rf {} \;
备份成**.zip**压缩文件