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的守护进程
如果在部署期间遇到问题可以留言哦,博主白天都会守在电脑前