数据库自动备份脚本配置流程

Posted farmer的空间

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库自动备份脚本配置流程相关的知识,希望对你有一定的参考价值。

说明

  1. 本配置流程仅适用于mysql直接安装在系统内

  1. 定时启动采用采用crontab进行定时运行

  2. 本配置流程基于centos7,mysql5.7


配置过程

  1. 新建脚本(1和2任选一即可)

  • 在合适的位置

vim /root/mysql-backup.sh


  • 并粘贴一下代码

#! /bin/bash#数据库名称DB_NAME="name"DAY=`date +%Y%m%d`#备份目录BAKDIR="/data/backup/database"#日志文件LOGFILE="/data/backup/database/data_backup.log"[ ! -d $BAKDIR ] && mkdir -p $BAKDIR[ ! -d $LOGFILE ] && touch $LOGFILE

echo -e "\n" >> $LOGFILE echo "------------------------------------" >> $LOGFILE echo "BACKUP DATE:$DATE">> $LOGFILE echo "------------------------------------" >> $LOGFILE#使用mysqldump进行全量备份mysqldump –defaults-extra-file=/etc/my.cnf --default-character-set=utf8 $DB_NAME> $BAKDIR/$DAY.sql

#增加日志记录if [[ $? == 0 ]]; then echo "$DAY BACKUP SUCCESSFUL!" >> $LOGFILEelse echo$DAY Backup Fail!” >> $LOGFILE fi


  • 保存完成后请务必记住将脚本提权

chmod 777 /root/mysql-backup.sh

上传脚本

  • 使用lszrz工具进行上传

  • 安装lszrz

yum install -y lrzsz


  • 输入rz后上传本地的mysql-backup.sh

  • 上传成功后查看一下根目录是否上传成功

  1. 配置my.cnf

  • 配置my.cnf的原因

  • 从mysql5.7开始,为了确保数据库的安全性采用的保护机制,如果在命令行中写有密码则会报错

Warning: Using a password on the command line interface can be insecure.


  • 配置my.cnf流程

vim /etc/my.cnf


  • 找到[client](如无该字段可以在最后一行添加)增加以下内容

host=localhostuser=root #数据库用户名password='password' #数据库密码

    正确效果图

  1. 配置crontab进行定时运行

参考内容:https://blog.csdn.net/huoyuanshen/article/details/51488350

  • crontab文件的基本格式如下所示

  • * * * * * command

  • 每个字段后面有一个空格

  • 分 时 天 月 周 命令

  • 每列表示意义

  • a. 第一个*表示的是分钟1~59分钟,默认*表示的是每分钟都执行,x-y表示的是x~y这段每分钟都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z分钟都执行。

  • b. 第二个*表示的是小时1~23小时,默认*表示的是每小时都执行,x-y表示的是x~y这段每小时都执行,*/n表示每n小时执行一次,x,y,z表示的是x,y,z小时都执行。

  • c. 第三个*表示的是天1~31,默认*表示的是每天都执行,x-y表示的是x~y这段每天都执行,*/n表示每n天执行一次,x,y,z表示的是x,y,z天都执行。

  • d. 第四个*表示的是月1~12,默认*表示的是每个月都执行,x-y表示的是x~y这个段每月都执行,*/n表示每n分钟执行一次,x,y,z表示的是x,y,z天都执行。

  • e. 第五个*表示的是周0~6(0表示周天),默认周一~周天都执行,x-y表示周x~周y每天都执行。

  • crontab文件的一些例子

  • a. 30 21 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天21:30重启apache

  • b. 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart //表示每月1,10,22号4:45重启apache

  • c. 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart //表示每天18 : 00至23 : 00之间每隔30分钟重启apache

  • d. * */1 * * * /usr/local/etc/rc.d/lighttpd restart //表示每一小时重启apache

  • e. */5 * * * * /usr/local/etc/rc.d/lighttpd restart //表示每5分钟重启apache

  • 配置crontab

crontab -e #编辑用户的crontab文件的内容

// 添加以下内容0 3 */3 * * /root/mysql-backup.sh //每三天凌晨3点自动运行备份脚本


以上是关于数据库自动备份脚本配置流程的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本基础变量

MySQL自动备份和下载备份到指定位置

centos7中mysql数据库自动备份失败

用python脚本自动备份网络设备配置

web服务文件更新自动同步数据库主从复制shell脚本实现网站代码备份和mysql备份

CentOS自动备份MySQL数据库代码分享