linux实时监控并实时备份数据(rsync)
阅读原文时间:2023年07月09日阅读:2

目录

一:rsync实时监控备份流程

1.安装rsync(服务端 与 客服端)守护进程模式
[root@backup ~]# yum install -y rsync

2.修改配置文件(服务端)
[root@m01 ~]# vim /etc/rsyncd.conf

uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to backup!
path = /backup
[linux]
comment = welcome to linux!
path=/tmp/linux
3.解析配置内容
配置文件详解
uid = rsync                         #启动服务的用户id(启动应用程序系统用户)
gid = rsync                         #启动服务用户的组id
port = 873                          #服务默认监听端口
fake super = yes                    #无须使用root用户启动
use chroot = no                     #安全机制
max connections = 200               #最大连接数
timeout = 600                       #超时时间
ignore errors                       #忽略错误
read only = false                   #只读权限
list = false                        #用户端查看模块列表(False)
auth users = rsync_backup           #定义虚拟用户(rsync传输过程使用的用户)同步数据用户
secrets file = /etc/rsync.passwd     #定义虚拟用户的密码
log file = /var/log/rsyncd.log       #日志文件
#####################################
[backup]                                #模块
comment = welcome to oldboyedu backup!     #模块的备注
path = /backup                          #服务器真实的路径
[linux]
comment = welcome to linux!
path=/tmp/linux

解析:
    添加几个模块都可以,
    作用:
        使用备份,填写那个模块就自动备份到模块路径下了。
4.创建系统用户
[root@backup opt]# groupadd rsync -g 666
[root@backup opt]# useradd rsync -u 666 -g 666 -M -s /sbin/nologin -r
5.创建密码文件
[root@backup opt]# echo "rsync_backup:123456" > /etc/rsync.passwd
6.授权(必须授权为600)
[root@backup opt]# chmod 600 /etc/rsync.passwd
7.创建备份目录(创建模块目录)
[root@backup opt]# mkdir /backup
[root@backup opt]# mkdir /tmp/linux
8.目录授权(模块目录)
[root@backup opt]# chown rsync.rsync /backup/
[root@backup opt]# chown rsync.rsync /tmp/linux/
9.关闭防火墙和selinux
[root@backup opt]# systemctl disabel --now firewalld
[root@backup opt]# setenforce 0
10.启动rsyncd服务
[root@backup opt]# systemctl start rsyncd

二:客户端(备份三种方式)

方法一:自己输入密码
    [root@m01 ~]# rsync -avzP ./* rsync_backup@172.16.1.41::backup

    rsync_backup : 虚拟用户,只在数据传输时使用
    172.16.1.41  : backup服务端的IP
    backup       : 模块名称

方法二:设置密码文件,运行时读取

    1、编写密码文件(在客户端需要密码 服务端需要用户和密码)
    [root@backup opt]# echo "123456" > /etc/rsync.passwd

    2、授权
    [root@m01 ~]# chmod 600 /etc/rsync.passwd

    3、连接
    [root@m01 ~]# rsync -avzP --password-file=/etc/rsync.passwd  ./* rsync_backup@172.16.1.41::linux

作用:
使用密码文件

方法三:添加环境变量
    1、定义环境变量
    export RSYNC_PASSWORD=123456

    2、同步
    [root@m01 ~]# rsync -avzP  ./* rsync_backup@172.16.1.41::linux

三:rsync实时同步(产生数据立刻备份)

  • inotify简介

    rsync是不支持实时同步的,通常我们借助于inotify这个软件来实时监控文件变化,一旦inotify监控到文件变,则立即调用rsync进行同步。

  • 两种结合 取长补短(实现实时同步)

1.安装inotify(装在客户端)
[root@web01 ~]# yum -y install inotify-tools

2.inotify参数介绍
-m 持续监控
-r 递归
-q 静默,仅打印时间信息
--timefmt 指定输出时间格式
--format 指定事件输出格式
    %Xe 事件
    %w 目录
    %f 文件
-e 指定监控的事件
    access 访问
    modify 内容修改
    attrib 属性修改
    close_write 修改真实文件内容
    open 打开
    create 创建
    delete 删除
    umount 卸载

四:开始实时监控

  • 测试开启实时监控客户端数据

    [root@m01 ~]# /usr/bin/inotifywait -mrq --format '%Xe %w %f' -e create,modify,delete,attrib,close_write /root

1.开启客户端(复制)

2.实时监控

五:实时监控并同步实时备份

[root@m01 ~]# /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root | while read line;do
cd  /root
    rsync -avzP --delete --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::backup
done