rsync实时监控以及守护进程

rsync守护进程模式

服务端的操作

1、安装
[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

"
[backup]
comment = welcome to backup!
path = /backup (备份目录)
[linux]
comment = welcome to linux!
path=/tmp/linux (备份目录)
"

3、创建系统用户
[root@backup opt]# groupadd rsync -g 666
[root@backup opt]# useradd rsync -u 666 -g 666 -M -s /sbin/nologin -r

4、创建密码文件
"新创建rsync.passwd,写入虚拟认证用户的密码"
[root@backup opt]# echo "rsync_backup:123456" > /etc/rsync.passwd

5、授权(必须授权为600
[root@backup opt]# chmod 600 /etc/rsync.passwd

6、创建备份目录
[root@backup opt]# mkdir /backup
[root@backup opt]# mkdir /tmp/linux

7、目录授权
[root@backup opt]# chown rsync.rsync /backup/
[root@backup opt]# chown rsync.rsync /tmp/linux/

8、关闭防火墙和selinux
[root@backup opt]# systemctl disable --now firewalld
[root@backup opt]# setenforce 0

9、启动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实时同步

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 卸载
    
3、先尝试此步骤开始监控(插图1)
[root@m01 ~]# /usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root

4.开始实时监控并同步(插图2)
/usr/bin/inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root | while read line;do
	rsync -avzP --delete --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::backup
done
# 客户端需要打开两个端口 一个端口实时监控 一个端口操作文件,服务端需要cd 至 选择的将数据同步到的目录

插图1)

插图2)

以下为配置文件详解

uid = rsync                    《====用rsync用户执行,客户端连接过来后具有rsync权限
gid = rsync
use chroot = no
max connections = 2000          《====最大连接数
timeout = 600                    《====客户端连服务端,超过600秒无动作就超时
pid file = /var/run/rsyncd.pid  《====rsync进程号存放的地方
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false                《====false可读写  true只读
list = false                     《====不可远程连接列表
hosts allow = 192.168.137.0/24   《====允许ip地址
hosts deny = 0.0.0.0/32           《====不拒绝ip地址
auth users = rsync_backup        《====认证用户,虚拟用户
secrets file = /etc/rsync.password  《====存放虚拟用户和密码的文件
#####################################
[backup]                            《====共享模块
comment = Backup server by feko     《====注释
path = /backup                      《====共享目录

至此结束rsync的守护进程

如果在部署期间遇到问题可以留言哦,博主白天都会守在电脑前

posted @ 2022-01-01 20:54  谢俊杰  阅读(194)  评论(0编辑  收藏  举报