rsync同步工具实战详解(+inotify)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync同步工具实战详解(+inotify)相关的知识,希望对你有一定的参考价值。

rsync介绍:
是一款开源的、快速的、多功能的、全量及增量的本地货远程数据同步备份工具

Rsync的工作方式:
1.单个主机本地local之间的数据传输(类似cp命令)
2.借助rcp,ssh等通道来传输数据(类似于scp)
3.以守护进程(socket)的方式传输数据(rsync自身重要的功能)

使用本地同步备份数据方式:

直接本地同步:相当于cp (cp 源 目标 ) ( rsync 源 目标 )

#保持属性同步:
cp -a (-d设备 -p属性同步 -r目录 ) 源 目标
rsync -avz 源 目标
使用rsync删除文件:mkdir /null(创建一个空目录)
rsync -r --delete /null/ /data/

使用ssh方式

类似于scp,借用ssh通道来进行传输数据
scp -P52113 -rp /etc/hosts [email protected]:/tmp
rsync -avz -e ‘ssh -p 52113‘ /etc/hosts [email protected]:/tmp

ps:-e 代表指定使用ssh通道

使用doment方式

一、服务端配置:
1)软件安装:yum install rsync
2)查看软件命令路径:which rsync
3)查看软件版本:rsync -version 或(rpm -qa rsync)
4)创建配置文件:vim /etc/rsyncd.conf

[[email protected] hzftp]# vim /etc/rsyncd.conf
uid = rsync
gid = rsync
port= 873
address= 172.17.0.112
use chroot = no
max connections = 20
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[hzftp]
path = /var/ftp/hzftp
ignore errors
read only = false
list = false
hosts allow = 172.17.0.21/24
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/rsync.pwd



配置文件内容详细讲解:

########################配置文件解释############################
uid = rsync #虚拟用户,需创建
gid = rsync #虚拟用户组
port= 873 #rsync默认的接口
address= 172.17.0.112 #默认自己A服务器端的ip地址
use chroot = no #表示连接成功后是否自动切换目录(yes/no)
max connections = 20 #最大连接数
pid file = /var/run/rsyncd.pid #pid文件存放的位置(rsyncd.pid存放路径)
lock file = /var/run/rsync.lock #锁文件存放伪装 (rsync.lock存放路径)
log file = /var/log/rsyncd.log #日志文件存放位置(rsyncd.log存放路径)

[hzftp] #(模块名)比较重要,rsync客户机同步的时候需要填写
path = /var/ftp/hzftp #服务器上备份文件的位置(一定要存在,如果没有需创建)
ignore errors
read only = false #是否只读
list = false #允许列表
hosts allow = 172.17.0.21/24 #允许的主机 (可以是IP也可以是IP段,加,号隔开)
hosts deny = 0.0.0.0/32 #不允许的主机
auth users = backup # 备份连接使用的账户(需要创建用户useradd bakcup
secrets file = /etc/rsync.pwd # 备份连接使用的账户密码(这里直接新建个文件即可)如下图
#########################结束###############################

5)创建虚拟用户rsync
创建用户(不能登录系统):useradd rsync -s /sbin/nologin
修改path的所有人和所属组:chown -R rsync.rsync /var/ftp/hzftp
创建rsync连接用的认证文件:echo "backup:shuyun2018" >/etc/rsync.pwd
修改rsync认证文件的权限:chmod 600 /etc/rsync.pwd
启用rsync服务:rsync --daemon
查看服务端口netstat -lntup|grep 873
查看服务:ps -ef|grep rsync
检查防火墙以及SELINUX是否关闭:getenforce--查看SELINUX状态
至此,服务端配置结束。

二、客户端配置:(操作一般都是在客户端上进行)
1)登录到客户端首先检查rsync服务是否安装:rpm -qa rsync
2)同样创建连接认证文件:echo "shuyun2018" >/etc/rsync.pwd

ps:客户端上我们只填密码即可,无需填用户名

3)修改认证文件权限:chmod 600 /etc/rsync.pwd
4)标准拉取文件格式:<两种方法拉取>
rsync -avz [email protected]::hzftp/test1 /data1 --password-file=/etc/rsync.pwd

rsync -avz rsync://[email protected]/hzftp/test1 /data1/ --password-file=/etc/rsync.pwd

ps:从服务器端往客户端上拉取数据

5)标准推送文件格式:<两种方法推送>
rsync -avz /data1 [email protected]::hzftp/test1 --password-file=/etc/rsync.pwd
rsync -avz /data1 rsync://[email protected]/hzftp/test1 --password-file=/etc/rsync.pwd

ps:从客户端往服务器端推送数据

注意:模块名<hzftp>后可以跟具体文件路径

重点注意:

报错查看日志==>日志输出:var/log/rsyncd.log
手动配置文件信息:
rsync -avz /data/a.log [email protected]::passwd

inotify只抓取有变化的文件或目录,然后通知rsync执行同步命令(inotify安装在客户端)
inotify安装:(rsync daemon服务配置成功才能配置inotify服务)
1.检查内核版本:uname -r 查看内核是否满足安装要求。
内核版本需达到:2.6.13
2.查看linlinux系统中是否有这三个虚拟文件 :ll /proc/sys/fs/inotify/
技术分享图片
#显示这三个文件则证明支持inotify
3.服务端配置:
启动命令:rsync --daemon

rsync监听端口873,两种检查模式
netstat -lntup|grep 873
ps -ef|grep rsync

以上是关于rsync同步工具实战详解(+inotify)的主要内容,如果未能解决你的问题,请参考以下文章

rsync高级同步工具基础及实战

(转)Linux下同步工具inotify+rsync使用详解

Rsync与Inotify监控与同步

Linux下同步工具inotify+rsync使用详解

Linux下同步工具inotify+rsync使用详解

rsync远程同步(定期同步,实时同步实战!)