linux 下 mysql(5.7)数据库定时备份数据,并同步到远程服务器

我的操作环境为mysql5.7 , centos7.4
一: 数据库的定时备份
1.创建备份文件目录

mkdir /home/dbback

2.创建备份shell脚本

cd /home/dbback
vim bkDatabaseName.sh

然后输入:

  #!/bin/bash
 mysqldump -uusername -ppassword DatabaseName | gzip > /home/dbback/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

这样可以直接将sql备份成压缩文件,节约空间
可以用:

gunzip  *******.zip 命令解压出sql文件

3.添加权限并测试

chmod u+x bkDatabaseName.sh
./bkDatabaseName.sh

执行脚本,如果有文件备份的话说明一切正常,执行脚本过程中出现了 Warning: Using a password on the command line interface can be insecure,不过我的能正常备份,就没处理。
4.添加脚本到计划任务
输入crontab,如果提示找不到命令,请自行安装crontab
添加任务

crontab -e
0 2 * * * /home/dbback/bkDatabaseName.sh

这样就可以了。0 2 * * *表示每天凌晨两点钟执行一次,这个可以根据具体需求改变
tail -f /var/log/cron 这个可以看定时任务的执行记录。这样,定时备份数据库的任务就实现了。

参考文章链接地址: https://blog.csdn.net/qq_35923749/article/details/79363364
crontab 定时任务 https://www.jianshu.com/p/d93e2b177814
二:将备份的数据用rsync推到远程服务器
将这台服务器用作rsync客户端,远程服务器用作rsync服务器。
1.先配置rsync服务器(即配置要同步到的远程服务器) 【配置三个文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)】

touch /etc/rsyncd.conf  #创建rsyncd.conf,这是rsync服务器的配置文件
touch /etc/rsyncd.secrets  #创建rsyncd.secrets,这是用户密码文件
chmod 600 /etc/rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!
    (注意:服务器A和服务器B都要设置该权限!)
touch /etc/rsyncd.motd
  1. 修改rsyncd.conf文件:

     vim /etc/rsyncd.conf
    

修改内容为:

    # /etc/rsyncd: configuration file for rsync daemon mode
    uid = root
    gid = root
    use chroot = no
    max connections = 6
    pid file = /var/run/rsyncd.pid
    read only = no
    hosts allow = 10.47.160.0/255.255.255.0
    motd file = /etc/rsyncd.motd
    log file = /var/log/rsync.log
    log format = %t %a %m %f %b
    syslog facility = local3
    timeout = 600
    [zzzcs]
    path = /home/nbjk/upload 
    list=no
    ignore errors
    comment = This is sync upload files
    auth users = root
    secrets file = /etc/rsyncd.secrets

注: hosts allow中IP和子网掩码应设置为rsync客户端的真实网段数据。
path 为要备份到rsync服务端的目录

修改rsyncd.secrets密码文件:

    vim /etc/rsyncd.secrets

内容改为:

    root:zzzcs

启动rsync服务:

   rsync --daemon

到这里rsync服务器已配置完毕。
接下来配置rsync客户端:

touch /etc/rsyncd.secrets  #创建rsyncd.secrets密码文件
chmod 600 /etc/rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

修改rsyncd.secrets密码文件:

    vim /etc/rsyncd.secrets

内容改为:

    zzzcs

在rsync客户端上执行命令,将数据推送到rsync服务器

    rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/*  rsync://[email protected]/zzzcs

1)上述同步命令中的IP为服务器B的地址;
2)可以将该命令写入一个.sh文件,例如(rsync.sh),并用cron job定时执行,即可达到定时向外网服务器同步文件的目的;
执行命令:

     crontab -e

在定时文件中写入定时执行任务,实例如下,即可实现定时同步。

     0 4 * * * /home/***/***/rsync.sh                 每天凌晨四点执行一次数据同步;

注意:两台服务器均要打开873/tcp、873/udp端口。另外要保证rsync服务器指定的同步到的目录要存在。

firewall-cmd --zone=public --add-port=873/tcp --permanent
firewall-cmd --zone=public --add-port=873/udp --permanent
firewall-cmd --reload

至此,mysql的数据库定时备份和定时同步到远程服务器就实现了。
参考文章链接: https://blog.csdn.net/dorantest/article/details/51788156?utm_source=blogxgwz1

你可能感兴趣的:(linux 下 mysql(5.7)数据库定时备份数据,并同步到远程服务器)