rsycn+inotify-tools实现远程实时备份数据

目的:
源主机A数据实时备份数据到远程备份主机B上

1、设置主机A免密访问备份主机B
2、安装inotify-tools(监控源主机文件变化)
3、编写实时同步脚本
4、配置检查
5、设置定时全数据备份

一、设置主机A免密访问备份主机B

1、在服务器A生成密钥(注意:P为大写)

[root@A ~]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

2、将生成的密匙拷贝到服务器B上,根据提示输入服务器B的密码

[root@A ~]# ssh-copy-id [email protected]  //服务器B的IP
[email protected]'s password:      //输入服务器B的root账号登录密码
Now try logging into the machine, with "ssh '[email protected]'", and check in:
.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

3、检查是否成功

[root@A ~]# ssh 121.33.7.1(服务器B的IP)
Last login: Mon Oct 28 21:02:57 2019 from 121.33.7.1

    Welcome to Huawei Cloud Service
[root@B ~]#      //已成功连接到服务器B上

二、安装inotify-tools(监控源主机文件变化)

1、yum命令安装

[root@A ~]#yum -y install inotify-tools

2、检查监控是否成功

[root@A ~]#inotifywait -mrq -e create,close_write,move,delete,modify /home/rsbak/

输入命令后使用另一个终端窗口打开源主机A,进入rsbak目录进行增删改查操作,返回监控终端查看是否有监测动态日志

三、编写实时同步脚本

1、创建脚本文件(in.sh)

[root@A ~]# vi /home/rsbak/in.sh

2、脚本内容

#!/bin/bash 
#inotifywait监控源目录动态
inotifywait -mrq -e create,close_write,move,delete,modify /home/rsbak/ |  while read file  
do

#同步到目的主机bak目录下,--delete 参数慎重使用,不使用去掉即可
 rsync -av --delete /home/rsbak/*.txt [email protected]:/home/bak/

    #echo "  ${file} was rsynced" >>/opt/soft/log/rsync.log 2>&1 
done

#将脚本加入后台执行
sh in.sh &  
bash in.sh &

3、rsync服务参考
https://www.jianshu.com/p/4beb57b99927

四、检查配置是否成功

1、启动inotify-tools

 [root@A ~]# /home/rsbak/in.sh

2、启动后Ctrl+z退出监听状态

3、在源主机A的rsbak目录下新建123.txt文件

4、进入备份主机B存放备份数据的bak目录下查看是否存在123.txt文件

脚本配置了后台运行权限,inotify-tools可在后台监测数据变化,同时进行rsync备份

五、定时全数据备份

为避免实时备份出现的数据遗漏、数据错误、备份出错等情况,建议定时执行全数据备份

1、编写rsycn定时全数据备份脚本(rs.sh)

[root@A ~]# vi /home/rsbak/rs.sh
脚本加入内容:
#! /bin/sh
 #源主机(rsbak)同步至备份主机(bak):
 #rsync -av /home/rsbak/ [email protected]:/home/bak/

2、设置定时
在crontab末尾加入自动执行脚本命令(每天0点执行)

[root@A ~]# vi /etc/crontab
末尾加入命令:00 00 * * * root /home/rsbak/rs.sh

3、 保存退出,重启cron。

[root@A ~]# /etc/rc.d/init.d/crond restart
Stopping crond:                                            [  OK  ]
Starting crond:                                            [  OK  ]

4、定时格式参考
https://www.jianshu.com/p/4beb57b99927

你可能感兴趣的:(rsycn+inotify-tools实现远程实时备份数据)