一个简单的Mysql备库脚本

一个简单的Mysql备库脚本


一、创建脚本

1.shell脚本如下:

#!/bin/bash

################################################################
##
##   MySQL Database Backup Script 
##   Author: 无味蓝染
##   Last Update: 20230620
##
################################################################
 
################## 参数  #######################################

YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
KEEPTIME=7   ## 备份文件保存时间

DB_BACKUP_PATH=/data/backup/mysql
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=mysql
MYSQL_PASSWORD=mysql
DB_NAME=testdb

 
################## 备份  ########################################

if [ ! -d ${DB_BACKUP_PATH} ]; then
	mkdir -p ${DB_BACKUP_PATH}
fi 

echo "Backup started for database - ${DB_NAME}"
 

mysqldump -h ${MYSQL_HOST} \
   -P ${MYSQL_PORT} \
   -u ${MYSQL_USER} \
   -p${MYSQL_PASSWORD} \
   ${DB_NAME} | gzip > ${DB_BACKUP_PATH}/${DB_NAME}-${YESTERDAY}.sql.gz
 
if [ $? -eq 0 ]; then
  echo "Mysql backup successfully completed"
else
  echo "Error found during backup"
  exit 1
fi
 
 
##### 删除{KEEPTIME}天前备份的文件(防止数据多了太占内存)  ######
##### 看其最后访问时间是否在{KEEPTIME}天以前(-atime)  ########

find $DB_BACKUP_PATH -name "*.sql.gz" -atime +$KEEPTIME -exec rm -rf {} \;
 
### End of script ####

2.赋予脚本执行权限

$ chmod +x mysql_dump.sh

二、创建Linux 定时任务

执行crontab -e 命令,添加如下定时任务:

00 00 * * * /bin/sh /data/sh/mysql_dump.sh

每天凌晨自动备份昨天的数据,并清除30天之前的备份文件。
最后,请监控上述脚本一段时间,已确保脚本的正确性哦~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值