Mysql自动备份脚本(本地备份、远程备份、删除冗余备份)
Mysql自动备份脚本(本地备份、远程备份、删除冗余备份)
1. 脚本功能
自动备份mysql数据到服务器上,可以通过linux的 crontab定义备份周期。
自动删除七天前的备份数据。
2. 脚本内容
#!/bin/bash
# auth Eric
source /etc/profile
# 设置备份目录和文件名
backup_directory="/usr/local/data"
backup_filename="test_$(date +%Y%m%d).sql"
# 设置MySQL连接参数
mysql_host="数据库IP"
mysql_user="数据库用户名"
mysql_password="数据库密码"
mysql_database="数据库名称"
# 创建备份目录(如果不存在)
mkdir -p "$backup_directory"
# 执行备份命令
mysqldump -h "$mysql_host" -u "$mysql_user" -p"$mysql_password" "$mysql_database" > "$backup_directory/$backup_filename"
#删除7天前数据
find $backup_directory -name "test_*.sql" -mtime +7 -exec rm {} \;
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "MySQL数据库备份成功:$backup_directory/$backup_filename"
else
echo "MySQL数据库备份失败"
fi
3. 如何使用
新建backupmysql.sh填入脚本内容。
1.在mysql的宿主机执行备份
可以直接执行脚本backupmysql.sh,然后就可以查看备份后的脚本文件了
2.在远程机器上备份
需要在远程机器上安装mysql访问客户端
apt-get install mysql-client
或者
yum install mysql-client
然后再执行脚本
4. 定义备份周期
通过linux自带的corntab来实现脚本的定时备份
这里我们定义每天0点备份一次数据库
crontab e
添加一行命令
0 0 * * * sh /home/Shell/backupmysql.sh
更多crontab表达式