#!/bin/bash
#MySQL Linux自动备份 脚本
#by 蒋成龙 2019 02 19
#时间
###教学部分
###参数设置根据实际内容设置
###命令部分不可修改,除存储时间设置,可将3改成7,即可存储周期变为7天
###脚本执行时间设置,每天晚上2.30执行脚本
### 30 2 * * * /mysql_backup/mysql_backup.sh
mysql_date=$(date +%Y.%m.%d_%H:%M:%S)
#参数设置
#####################################################
#相关参数已经加密,需要加密的参数请找蒋成龙协助加密
#数据库地址
host_encrypted='U2FsdGVkX18hc0E0xfQL4IcyYolIzZKdDtUOqWX9ucU='
mysql_host=`echo U2FsdGVkX18hc0E0xfQL4IcyYolIzZKdDtUOqWX9ucU= | openssl aes-128-cbc -d -k 123 -base64`
#数据库用户
user_encrypted='U2FsdGVkX18osFnobeilDcI/2R4fbzlAlw+yrdg5vmM='
mysql_user=`echo U2FsdGVkX18osFnobeilDcI/2R4fbzlAlw+yrdg5vmM= | openssl aes-128-cbc -d -k 123 -base64`
#数据库密码
pass_encrypted='U2FsdGVkX19whvKPokXV/YL+LyfWU6OcjvRa5/Y3dbE='
mysql_password=`echo U2FsdGVkX19whvKPokXV/YL+LyfWU6OcjvRa5/Y3dbE= | openssl aes-128-cbc -d -k 123 -base64`
#数据库端口号
mysql_port='3306'
#要备份的数据库名称
mysql_database='zabbix'
#备份文件的存储目录
mysql_backup_file='/mysql_backup'
####################################################
#命令部分禁止修改
####################################################
####文件夹初始化
if [ ! -d /mysql_backup ];then
mkdir /mysql_backup
else
echo ""
fi
####1.备份命令
echo "开始备份:" >>${mysql_backup_file}/mysql_backup.log
mysqldump -h$mysql_host -u$mysql_user -p$mysql_password -P$mysql_port $mysql_database > $mysql_backup_file/mysql-$mysql_database-${mysql_date}.sql
sleep 10s
echo "备份完成:" >>${mysql_backup_file}/mysql_backup.log
sleep 60s
####2.日常存储规则命令
#执行备份文件存储计划
#存储时间设置:备份文件存储3天,3天前的备份文件会被删除
beginreg=`date -d "3 day ago" +%Y.%m.%d`
echo "日志清除清单:" >>${mysql_backup_file}/mysql_backup.log
find $mysql_backup_file -type f -name "mysql-*${beginreg}*.sql" >> ${mysql_backup_file}/mysql_backup.log
find $mysql_backup_file -type f -name "mysql-*${beginreg}*.sql" | xargs rm -f
echo "日志清除完成:" >>${mysql_backup_file}/mysql_backup.log
####################################################