使用rsync同步文件

1.1 安装

yum install xinetd
yum install rsync

1.2 配置文件

1.2.1 服务端主机配置

/etc/rsyncd.conf

motd file = /etc/rsyncd.motd    #设置服务器信息提示文件,在该文件中编写提示信息
transfer logging = yes    #开启rsync数据传输日志功能
log file = /var/log/rsyncd.log    #设置日志文件名,可通过log format参数设置日志格式
pid file = /var/run/rsyncd.log    #设置rsync进程号保存文件名称
lock file = /var/run/rsync.lock    #设置锁文件名称
uid = nobody    #设置进行数据传输时所使用的帐户名或ID号,默认使用nobody
gid = nobody    #设置进行数据传输时所使用的组名或GID号,默认使用nobody
#若为yes, rsync会首先进行chroot设置,将根映射在下面的path参数路径下,对客户端而言,系统的根就是path参数指定的路径。但这样做需要root权限,并且在同步符号连接资料时只会同步名称,不会同步内容。
use chroot = no 
read only = yes    #是否允许客户端上传数据,yes表示不允许
max connections = 200    #设置并发连接数,0表示无限制

[common]    #自定义模块名,rsync通过模块定义同步的目录,可定义多个
comment = web content    #定义注释说明字串
path = /common    #同步目录的真是路径通过path指定
ignore errors    #忽略一些IO错误
#exclude = test/    #exclude指定common目录下某个目录可以不同步数据
auth users = tom, jerry    #设置允许连接服务器的账户,此账户可以是系统中不存在的用户
secrets file = /etc/rsyncd.secrets    #密码验证文件名,该文件权限要求为只读,建议为600,仅在设置auth users后有效
hosts allow = 192.168.0.0/255.255.255.0   #设置哪些主机可以同步数据,多ip和网段之间使用空格分隔
hosts deny=*    #除了hosts allow定义的主机外,拒绝其他所有
list = false    #客户端请求显示模块列表时,本模块名称是否显示,默认为true

/etc/rsyncd.secrets

tom:123
jerry:123
chmod 600 /etc/rsyncd.secrets

/etc/rsyncd.motd

Welcom to rsync

/etc/xinetd.d/rsync中disable改为no
检验命令

netstat -tunlp | grep 873

1.2.2 客户端主机配置

/etc/rsyncd.secrets

tom:123
jerry:123
chmod 600 /etc/rsyncd.secrets

1.3 启动

1.3.1 服务端启动

service xinetd restart
pkill rsync
rsync --daemon
echo "/usr/bin/rsync --daemon" >> /etc/rc.local    #开机启动rsync服务

1.4 使用

1.4.1 示例

rsync -t *.c 192.168.0.54:src/        #将本机当前目录下的以.c结尾的文件赋值到192.168.0.54的src目录下
rsync -avz 192.168.0.54:src/bar /data/tmp     #从192.168.0.54主机上将src/bar目录以递归方式复制到本机/data/tmp目录
rsync -avz 192.168.0.54:src/bar/ /data/tmp   #和例子2的区别是不在/data/tmp目录下创建bar目录
rsync -avz /src/foo /dest    #将本机/src/foo目录复制到/dest目录
rsync -avz [email protected]::common /test3    #使用tom账户连接远程192.168.0.230主机的rsync进程,将common模块定义的path路径下载到本地test3目录
rsync -avz 192.168.0.230::common /test3     #匿名下载192.168.0.230服务器的common模块至本地的/test3目录
rsync --list-only [email protected]::    #显示192.168.0.254服务器所有的模块名称,需要服务器端配置list=true才会显示

# 客户端每次连接服务器都需要输入密码很麻烦,可以创建密码文件rsync.pass,在其中包含密码,然后使用--password-file指定此文件
echo "123" > rsync.pass   #服务器端用户tom的密码
rsync -avz --delete --password-file=rsync.pass [email protected]::common /dest

你可能感兴趣的:(使用rsync同步文件)