mysql数据库备份脚本指定表_mysqldump备份指定mysql数据库脚本

前几天有朋友让帮忙写一个mysql数据备份脚本,于是就有了下文通过mysqldump命令备份数据库的脚本,贴出来跟大家交流,若有问题,请指正,谢谢。

实现功能:

1 备份指定的数据库

2 删除指定天数前的备份文件,默认设定了7天#!/bin/bash

#

# 文件名:mysql_bak.sh

#

#数据库备份文件的目录,若没有请创建目录或指定备份目录

BACKUP_DIR="/bak/mysqlbak"

#指定mysql所在主机的主机名

DB_HOSTNAME=‘hostname‘

#指定mysql登录用户名

DB_USERNAME=‘backupuser‘

#指定mysql登录密码

DB_PASSWORD=‘password‘

#指定备份的数据库名

DB_NAME="dbname"

#定义当前日期为变量

CURRENT_DATE=$(date +"%Y%m%d$H")

#定义删除N天前的文件变量

DEL_DAYS_BEFORE_FILES=7

#指定mysqldump所在目录

MYSQLDUMP_DIR="/usr/bin"

#备份指定数据库

if $($MYSQLDUMP_DIR/mysqldump -h ${DB_HOSTNAME} -u${DB_USERNAME} -p${DB_PASSWORD} ${DB_NAME} > "${BACKUP_DIR}/${DB_NAME}_${CURRENT_DATE}.sql");then

cd ${BACKUP_DIR}

gzip ${DB_NAME}_${CURRENT_DATE}.sql

echo "${CURRENT_DATE}--Backup database ${DB_NAME} successfully!"

else

echo "${CURRENT_DATE}--Backup database ${DB_NAME} unsuccessfully"

fi

#删除指定N天前的备份文件

find ${BACKUP_DIR} -name "${DB_NAME}_*.sql.gz" -type f -mtime +${DEL_DAYS_BEFORE_FILES} -exec rm {} \; > /dev/null 2>&1

关于mysql备份脚本的使用说明:

1 备份操作是使用mysqldump命令完成,默认设置保留近7天备份文件

2 建议创建备份使用的用户 backupuser(host字段建议指定IP)

>CREATE USER ‘backupuser‘@‘%‘ IDENTIFIED BY ‘password‘;

>GRANT SELECT,LOCK TABLES,FILE,RELOAD ON *.* TO ‘backupuser‘@‘%‘;

(个人认为这些权限足够了,若不够自行添加)

3 注意需要在脚本中指定数据库备份目录

4 赋予脚本执行权限

$chmod +x mysql_bak.sh

5 创建定时任务,比如每天凌晨两点执行备份操作

Redhat下操作

$crontab -e

# $PWD是指备份脚本所在路径

# $BACKUP_DIR是指数据库备份目录

* 2 * * * $PWD/mysql_bak.sh &> $BACKUP_DIR/mysql_bak.log

注意:运行脚本用户对所操作目录的权限设置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值