Rsync如何实现文件同步
这篇文章主要介绍“Rsync如何实现文件同步”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Rsync如何实现文件同步”文章能帮助大家解决问题。
rsync的目的是实现本地主机和远程主机上的文件同步(包括本地推到远程,远程拉到本地两种同步方式),也可以实现本地不同路径下文件的同步。
首先了解了下rsync同步的大致原理:Rsync 同步使用所谓的“Rsync 演算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份
传送,因此传输的速度相当快。Rsync服务端会打开一个873的服务通道(port),等待客户端 Rsync 连接。连接时,Rsync 服务端会检查口令(passwd)是否相符,若通过口令查核,
则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间的差异部份。
接下来我们就来初步搭建,先完成任务需求。
Rsync服务端(192.168.177.130)安装rsync工具
yum-yinstallrsync
(默认会在etc目录下生成一个rsync的配置文件)
编辑配置文件rsyncd.conf (配置文件里面是不能添加注释,不然会报错)
uid=rootgid=rootusechroot=nomaxconnections=4#pidfile=/var/run/rsyncd.pidlockfile=/var/run/rsyncd.locklogfile=/var/log/rsyncd.logexclude=lost+found/transferlogging=yestimeout=600ignorenonreadable=yesdontcompress=*.gz*.tgz*.zip*.z*.Z*.rpm*.deb*.bz2[test]path=/home/rsynctestignoreerrors=yesreadonly=yeswriteonly=nohostsallow=192.168.177.131hostsdeny=*list=falseuid=rootgid=rootauthusers=rootsecretsfile=/etc/rsyncd.passwd
配置详解
uid=root#设置运行rsync进程的用户gid=rootusechroot=no#使用默认根目录maxconnections=4#最大连接数#pidfile=/var/run/rsyncd.pid#CentOS7中yum安装不需指定pidfile否则报错lockfile=/var/run/rsyncd.lock#指定支持maxconnections参数的锁文件logfile=/var/log/rsyncd.log#此文件定义完成后系统会自动创建exclude=lost+found/transferlogging=yes#使rsync服务器使用ftp格式的文件来记录下载和上载操作在自己单独的日志中timeout=600#通过该选项可以覆盖客户指定的IP超时时间。通过该选项可以确保rsync服务器不会永远等待一个崩溃的客户。超时单位为秒钟,0表示没有超时定义,这也是默认值。对于匿名rsync服务器来说,一个理想的数字是600。ignorenonreadable=yes#同步时跳过没有权限的目录dontcompress=*.gz*.tgz*.zip*.z*.Z*.rpm*.deb*.bz2#传输时不压缩的文件[test]#此名字即客户端使用rsync来同步的路径path=/home/rsynctest#实际需要同步的路径ignoreerrors=yes#指定rsyncd在判断是否运行传输时的删除操作时忽略server上的IP错误,一般来说rsync在出现IO错误时将将跳过--delete操作,以防止因为暂时的资源不足或其它IO错误导致的严重问题readonly=yes#表示可以pullwriteonly=no#表示不可以pushhostsallow=192.168.177.131#客户端同步的地址hostsdeny=*#指定不允许连接rsync服务器的机器,可以使用hostsallow的定义方式来进行定义。默认是没有hostsdeny定义。list=false#该选项设定当客户请求可以使用的模块列表时,该模块是否应该被列出。如果设置该选项为false,可以创建隐藏的模块。默认值是true。uid=root#获取文件的身份gid=rootauthusers=root#客户端获取文件的身份此用户并不是本机中确实存在的用户secretsfile=/etc/rsyncd.passwd#用来认证客户端的秘钥文件格式USERNAME:PASSWD此文件权限一定需要改为600,且属主必须与运行rsync的用户一致。(需自行创建)
创建对应密码文件
vim/etc/rsyncd.passwd格式如下:root:123456(前用户名后密码)修改文件权限:chmon600/etc/rsyncd.passwd启动rsync服务端:sudorsync--daemon(客户端不用启动)Rsync客户端(192.168.177.131)
安装rsync工具
yum-yinstallrsync(默认会在etc目录下生成一个rsync的配置文件)
配置认证密码文件
echopasswd(只需要密码就行)>>/etc/rsyncd.passwd
修改权限
chmon600/etc/rsyncd.passwd
测试文件同步情况:
rsync-avz--progress--password-file=/etc/rsyncd.passwdroot@192.168.177.130::rsynctest/tmp/rsynctest/
测试完成!
命令参数详解:
-v,–verbose详细模式输出-z,–compress对备份的文件在传输时进行压缩处理-r,–recursive对子目录以递归模式处理-t,–times保持文件时间信息-o,–owner保持文件属主信息-p,–perms保持文件权限-g,–group保持文件属组信息–-progress显示传输进度--delete删除客户端多余文件
关于“Rsync如何实现文件同步”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。