MySql自动备份

#! /bin/bash
# 日期: 20220927
# 执行环境: 192.168.10.35
# 功能: 每天和每月备份mysql中所有数据库
# 描述: 此脚本每天/每月1号执行一次, 超过自动删除超过10天的备份数据
# 制作人: ZL

#定义日期变量和备份路径
now=$(date "+%Y%m%d")
backup_dir="/home/mysql_backup"
 
#mysqldump导出所有库的表结构和数据
mysqldump --single-transaction -u root -h 192.168.25.38 --password=abcd1234 --all-databases > /${backup_dir}/25.38-Mysql_backup_${now}.sql
if [ $? -ne 0 ]; then
    echo 'mysqldump运行失败' >>/${backup_dir}/err_mysql_backup.log
fi

#删除超过10天的数据
rm -f ${backup_dir}/25.38-Mysql_backup_$(date -d -10day +%Y%m%d).sql

echo ${now}",MySQL备份已经完毕!"

#############脚本搭配"crontab -e"###########
#示例:
#.---------------- 分钟 (0 - 59)
#| .------------- 小时 (0 - 23)
#| | .---------- 日期 (1 - 31)
#| | | .------- 月份 (1 - 12) OR jan,feb,mar,apr ...  (禁止与周几同时定义)
#| | | | .---- 星期几/周几 (0 - 6) (周日=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  (禁止与月份同时定义)
#| | | | |
#* * * * * 命令
#mysql备份
#0 1 * * * /home/mysql_backup.sh >> /home/mysql_backup/mysql_back.log
#压缩mysql备份
#0 4 1 * * mkdir -p /Remote-Backup/$(date +\%Y\%m) && zip -qr /Remote-Backup/$(date +\%Y\%m)/25.38-Mysql_backup_$(date +\%Y\%m).zip /home/mysql_backup/25.38-Mysql_backup_$(date +\%Y\%m\%d).sql

 

posted @ 2022-10-31 15:31  天海沙  阅读(14)  评论(0编辑  收藏  举报