首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据库定时全量备份shell脚本

通过shell脚本写一个mysql全量备份数据库的mysqldump命令,将备份的sql数据压缩成gzip包。使用linux的crontab定时运行该脚本。由于备份的数据量大,每天的备份数据都占用很大的硬盘空间,备份完成后删除之前的多少天的备份数据。

vi /home/itency/cron/db_backup.sh,新增shell脚本文件。

#!/bin/bash

source ~/.bash_profile

#数据库安装路径

MYSQL_DIR=/usr/local/mysql

#数据库用户名

MYSQL_USER=itency

#数据库密码

MYSQL_PWD='itency'

#数据库

MYSQL_DB=itency

#备份路径

BACKUP_DIR=/home/itency/dbbackup

#新生成的备份文件名称

FILE_NAME=$BACKUP_DIR/$_`date +"%Y%m%d"`.sql.gz

echo ".............start FILE_NAME=$"

#判断要备份的文件名是否已经存在,存在则删除

if [ -f "$FILE_NAME" ]; then

TODATE=`date +"%Y%m%d"`

find $BACKUP_DIR -name "*$.sql.gz" -exec rm -rf {} \;

fi

echo "backup database $"

#备份数据库并压缩成gzip格式文件

$MYSQL_DIR/bin/mysqldump -h localhost -P 3306 -u $MYSQL_USER -p$ $ | gzip -9 > $

#生成3天前的日期

BFD=`date -d "3 days ago" +%Y%m%d`

if [ -f "$FILE_NAME" ]; then

#删除三天前的备份文件

find $BACKUP_DIR -name "*$.sql.gz" -exec rm -rf {} \;

fi

echo ".............end..............FILE_NAME=$"

crontab -e配置每天凌晨4点定时执行脚本,并将执行的日志输出到db_backup.log

[itency@izwz9azczon7vvagpnwukvz cron]$ crontab -e

0 4 * * * /home/itency/cron/db_backup.sh >> /home/itency/cron/db_backup.log

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180704G1LAPW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券