利用rsync同步多台机器文件到同一台

本文详细介绍了rsync软件的远程同步功能及其配置过程,包括服务器端的配置文件rsyncd.conf设置、密码文件的管理,以及客户端如何连接并同步文件。重点突出rsync在文件同步时保持权限、时间等附加信息的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是rsync

  rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。 rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件

二、搭建rsync服务器(服务端配置)

     鹅厂机器都自带了rsync,所以就只需要写一个配置文件rsyncd.conf即可,下面详细解释一下:

#运行rsync守护进程的用户
uid = root
#运行RSYNC守护进程的组
gid = root
#不使用chroot
use chroot = no
#最大连接数是4
max connections = 4
#pid文件存放位置
pidfile=rsyncd.pid
#锁文件存放位置
lockfile=rsync.lock
#日志文件存放位置
logfile=rsyncd.log
#定义一个model,在客户端连接时会用到,如果要同步多个目录,可以定义多个model
[video]
#要同步的目录
path =/data/tyronetao/face_recog/youtu_face/local_v
#忽略无关的IO错误
ignore errors
#只读,不能上传
readonly =true
#禁止查看文件列表
list =false
#允许访问服务的ip
#hosts allow = 192.168.1.200
#禁止访问服务的ip
#hosts deny = 0.0.0.0/32
#认证的用户名,系统必须存在的用户,如果你想用多个用户以,号隔开,比如auth users = easylife,r#oot;但是密码需要在passwd配置,不是系统的密码。
authusers= user_00
#认证用户密码文件,配置auth users的密码
secretsfile=passwd

 

密码文件passwd格式很简单,passwd的内容格式为:用户名:密码,比如我的就是

            user_00:taozhiwei

密码文件的文件属性设为root拥有, 且权限要设为600;所以执行以下操作

            chown root:root passwd #修改root拥有,
            chmod 600 passwd      #修改权限

运行rsync(root身份,否则无法读取passwd文件) :rsync --config=rsyncd.conf --daemon  --port=18088;

其中--port指定了端口,--config指定了配置文件所在路径,--daemon  指定了以守护进程的方式运行;

三、客户端连接并同步文件

  1. 手动输入密码:rsync -vzrtopg --port=18088 --delete --progress  user_00@127.0.0.1::video /data/tyronetao/face_check/video;其中user_00@127.0.0.1中的user_00就是服务端authusers里配置的,ip换成实际ip即可,然后是::video,video为服务端定义的一个model,video前是2个冒号;/data/tyronetao/face_check/video指定的是同步到本地的路径;-vzrtopg里的v是verbose,z是压缩,r是recursive,topg都是保持文件原有属性如属主、时间的参数。--progress是指显示出详细的进度情况;--delete是指如果服务器端删除了这一文件,那么客户端也相应把文件删除
  2. 自动密码方式:rsync -vzrtopg --port=18088 --delete --progress --password-file=/data/tyronetao/syn_rsync/password user_00@127.0.0.1::video /data/tyronetao/face_check/video;其中--password-file指定了密码文件password所在路径,password里只需包含服务器端auth user的密码即可,比如我保存的就是taozhiwei;客户端password文件属性也要设为root拥有, 且权限要设为600;执行如下操作:          chown root:root passwd #修改root拥有,
              chmod 600 passwd      #修改权限

        Rsync常见错误请参考:  http://www.tuicool.com/articles/me2IFjf

        更多细节参考:http://blog.chinaunix.net/uid-12306154-id-2181530.html

Rsync命令详解 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync一个功能非常强大的工具,其命令也有很多功能特色选项。 一、rsync的六种工作模式: 1.1、拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。 1.2、使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。 1.3、使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。 1.4、从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。 1.5、从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。 1.6、列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。 二、rsync的命令格式可以为: rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... SRC [SRC]... DEST rsync [OPTION]... [USER@]HOST::SRC [DEST] rsync [OPTION]... SRC [SRC]... [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST] 2.1、用法 2.1.1在使用rsync传输文件时,需要指定一个源和一个目的,其中一个可能是远程机器的资源信息。例如: #rsync *.c servivcer:src/ 表示将传输当前目录下所有以.c结尾的文件机器servivcer的src目录下。如果文件已经存在于远程机器,则会调用远程更新协议来实现仅仅传输那些更新过的文件rsync -avz servivcer:src/bar /data/tmp 该命令则递归地传输机器servivcer上的src/bar目录下的所有内容到本地/data/tmp/bar目录中。文件以归档模式进行传输,以确保符号链结、属性、权限、属主等信息在传输中都被保存。此外,可以使用压缩技术来加快数据传输: rsync -avz servivcer:src/bar/ /data/tmp 路径信息以"/"结尾时表示拷贝该目录,而不以"/"结尾表示拷贝该目录。当配合使用--delete选项时这两种情况的区别将会表现出来。 2.1.2也可以以本地模式来使用rsync,如果SRC和DST路径中都没有任何":"符号则表示该命令运行在本地模式,等同于cp命令。 rsync somehost.mydomain.com:: 这种模式则将会列出somehost.mydomain.com.可以访问的所有模块信息。 选项说明 -v, --verbose 详细模式输出 -q, --quiet 精简输出模式 -c, --checksum 打开校验开关,强制对文件传输进行校验 -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, --recursive 对子目录以递归模式处理 -R, --relative 使用相对路径信息 rsync servivcer/bar/servivcer.c remote:/tmp/ 则在/tmp目录下创建servivcer.c文件,而如果使用-R参数: rsync -R servivcer/bar/servivcer.c remote:/tmp/ 则会创建文件/tmp/servivcer/bar/servivcer.c,也就是会保持完全路径信息。 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 --safe-lin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值