shell编程-备份脚本

本文介绍了两个bash脚本,用于在Linux系统中自动化备份MySQL数据库的生产逻辑库和中间件目录,包括定期执行的cronjob任务。脚本涉及到了使用docker-compose、mysqldump以及tar进行备份操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备份数据库

#!/bin/bash
set -x
# 使用方法:
# 使用 root 用户操作
# 1 使用本文件的内容创建文件 /usr/local/bin/back-sql.sh
# 2 修改文件 /usr/local/bin/back-sql.sh 的权限
#   chmod 755 /usr/local/bin/back-sql.sh
# 3 使用 root 用户执行命令 crontab -e
# 4 之后使用下面的内容填充(不包含 # ),含义是每天的 00 点 00 分执行备份数据库的脚本
# 00 00 * * * /usr/local/bin/back-sql.sh > /tmp/back-sql.log 2>&1
# 脚本作者: 闫顺军
# 邮箱: 
# 脚本作用:
# 对 MySQL 数据库的生产逻辑库进行全量备份,并对
#######################################

###### 定义变量 ######
export PATH=$PATH:/usr/local/bin

# mysql 用户
sql_user=shark

# mysql 密码
sql_pwd=password

# mysql 主机名或者ip
sql_host=x.x.x.x

# mysql 端口
sql_port=3306

# 数据备份目录
backup_dir=/apps/dbbackup/mysqldata

# 时间戳
dt=$(date +%Y%m%d%H%M)

# docker-compose.yml 文件绝对路径
compose_file=/apps/middle/mysql/docker-compose.yml

# 需要备份的逻辑库名称
dbs="spms_admin spms_alarm spms_asset spms_convenient spms_datatemp spms_datav spms_device spms_edge spms_meet spms_message spms_security spms_system spms_workorder"
###### 备份前删除 15 天和 15 天之前备份的文件 ######
find ${backup_dir} -mtime +15 -name 'all*.sql'|xargs rm -rf


###### 备份逻辑库 ######
docker-compose -f ${compose_file} exec mysql mysqldump -u${sql_user} -p${sql_pwd} -h ${sql_host} -P ${sql_port} --set-gtid-purged=OFF --triggers --routines --events --databases $dbs 2>/dev/null  > ${backup_dir}/all-${dt}.sql

备份知道目录的数据

#!/bin/bash
set -x
# 使用方法:
# 使用 root 用户操作
# 1 使用本文件的内容创建文件 /usr/local/bin/back-middle.sh
# 2 修改文件 /usr/local/bin/back-middle.sh 的权限
#   chmod 755 /usr/local/bin/back-middle.sh
# 3 使用 root 用户执行命令 crontab -e
# 4 之后使用下面的内容填充,含义是每月的 1 号和 15 号的 01 点 00 分执行备份 middle 目录的全部文件
# 00 01 1,15 * * /usr/local/bin/back-middle.sh >/tmp/back-middle.log 2>&1
# 脚本作者: 
# 邮箱: 
# 脚本作用:
# 对 MySQL Redis RabbitMQ 等中间件的 docker-compose 文件、配置文件和数据目录进行文件级别的全量备份,每月 1 号和15号分别执行一次。
#######################################

###### 定义变量 ######
export PATH=$PATH:/usr/local/bin

###### 程序开始 ######
# 备份程序的整个目录,包含 MySQL/Radis/RabbitMQ 的程序和数据
cd /apps
tar -cvzf /apps/dbbackup/middle-$(hostname)-$(date "+%Y%m%d").tar.gz  middle  --exclude=*log*
if [ $? -eq 0 ];then
    # 删除之前的备份
    find /apps/dbbackup  -mtime +16 -name 'middle*.tar.gz'|xargs rm -rf
fi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shark_西瓜甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值