使用方法:
本备份脚本尽可备份一个库,如需备份多个:
1、可以复制多次放入一个脚本,使用一个定时任务。建议多个任务发入一个脚本在任务中中加入 sleep 5 等待一段时间以确保安全
2、也可进行脚本复制,多个脚本多个库,多个定时任务分开,建议多个定时任务执行脚本进行时间分开执行,以免出现问题。
mysql备份脚本(备份中包含删除90天之前的备份不使用可以删除)
#!/bin/bash
#填写mysql环境变量,以防定时任务执行不了备份任务
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
# 备份文件保存路径
backup_dir=""
# MySQL连接信息
db_host="localhost"
db_port="3306"
db_user="your_mysql_user"
db_password="your_mysql_password"
db_name="your_database_name"
# 备份文件名
backup_file="${backup_dir}/backup_$(date +'%Y%m%d%H%M%S').sql"
# 执行备份命令
mysqldump -h"${db_host}" -P"${db_port}" -u"${db_user}" -p"${db_password}" "${db_name}" > "${backup_file}"
# 检查备份是否成功
if [ "$?" -eq 0 ]; then
echo "MySQL备份成功: ${backup_file}"
else
echo "MySQL备份失败"
fi
#删除脚本
# 获取当前时间
current_date=$(date +%Y%m%d%H%M%S)
# 计算90天之前时间
thirty_days_ago=$(date -u -d "90 days ago" +%Y%m%d)*
echo "当前日期和时间: $current_date"
echo "90天前的日期和时间: $thirty_days_ago"
file_to_delete="backup_$thirty_days_ago.sql"
echo "删除时间:$file_to_delete"
rm -rf $backup_dir$file_to_delete
echo "备份成功!并删除备份90天之前数据!"
定时任务
#每天晚上十二点执行脚本
0 0 * * * sh /opt/bak/mysql_bak.sh