CentOS7.5搭建Rsync,实现文件同步

Rsync(remote sync)是UNIX及类UNIX平台下一款神奇的数据镜像备份软件,它不像FTP或其余文件传输服务那样须要进行全备份,Rsync能够根据数据的变化进行差别备份,从而减小数据流量,提升工做效率。可使用它进行本地数据或远程数据的复制,Rsync可使用SSH安全隧道进行加密数据传输。Rsync服务器端定义源数据,Rsync客户端仅在源数据发生改变后才会从服务器上实际复制数据至本地,若是源数据在服务器端被删除,则客户端数据也会被删除,以确保主机之间的数据是同步的。Rsync使用TCP 873端口。shell

1.搭建 Rsync服务器

# yum安装安全

yum install rsync服务器

# 启动Rsync并发

systemctl start rsyncd工具

# 容许开机自启动测试

systemctl enable rsyncdui

# 检查是否已经成功启动加密

netstat -lnp |grep 873spa

 

由于Rsync是Andrew Tridgell(Samba的做者)与Paul Mackerras合做开发的软件,因此Rsync配置文件与Samba配置文件比较类似。Rsync主要分为三个配置文件,分别是:rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)和rsyncd.motd(服务器信息文件)。3d

下面的案例演示了如何共享/common目录,为此,咱们须要建立/common目录,并复制一些测试文件存放在该目录下。本例须要手动建立配置文件

mkdir /common

cp /etc/init.d/* /common/

 

#/etc/rsyncd.conf #设置服务器信息提示文件名称,在该文件中编写提示信息 motd file=/etc/rsyncd.motd #开启Rsync数据传输日志功能 transfer logging=yes #设置日志文件名称,能够经过1og format参数设置日志格式 log file=/var/1og/rsyncd.1og #设置Rsync进程号保存文件名称 pid file=/var/run/rsyncd.pid #设置锁文件名称 lock file=/var/run/rsync.lock #设置服务器监听的端口号,默认为873 port=873 #设置服务器所监听网卡接口的IP地址,这里服务器IP地址为192.168.5.5 address=192.168.5.5 #设置进行数据传输时所使用的帐户名称或ID号,默认使用nobody uid=nobody #设置进行数据传输时所使用的组名称或GID号,默认使用nobody gid=nobody #设置user chroot为yes后,rsync会首先进行chroot 设置,将根映射到path参数路径下,对客户端而言,系统的根就是path参数所指定的路径。但这样作须要root权限,而且在同步符号连 接资料时仅会同步名称,而内容将不会同步。 use chroot=no #是否容许客户端上传数据,这里设置为只读。 read only=yes #设置并发链接数,0表明无限制。超出并发数后,若是依然有客户端链接请求,则将会收到稍后重试的提示消息 max connections=10 #模块,Rsync经过模块定义同步的目录,模块以[name]的形式定义,这与Samba定义共享目录是同样的效果。在Rsync中也能够定义多个模块 [common] #comment定义注释说明字串 comment=Web content #同步目录的真实路径经过path指定 path=/common #忽略一些IO错误 ignore errors #exclude能够指定例外的目录,即将common目录下的某个目录设置为不一样步数据 #exclude=test/ #设置容许链接服务器的帐户,帐户能够是系统中不存在的用户 auth users=zhangsan,wangwu #设置密码验证文件名称,注意该文件的权限要求为只读,建议权限为600,仅在设置auth users参数后有效 secrets file=/etc/rsyncd.secrets #设置容许哪些主机能够同步数据,能够是单个IP,也能够是网段,多个IP与网段之间使用空格分隔 hosts allow=192.168.5.0/255.255.255.0 #设置拒绝全部(除hosts allow定义的主机外) hosts deny=* #客户端请求显示模块列表时,本模块名称是否显示,默认为true list=false

接下来,经过echo的方式建立密码文件/etc/rsyncd.secrets,在该文件中输入两个帐户:zhangsan帐户的密码是123,wangwu帐户的密码是456。须要注意的是,密码文件不能够对全部的人开放可读权限,为了安全,建议设置权限为600。建立服务器提示信息文件并向该文件中导入欢迎词。

echo "zhangsan:123" > /etc/rsyncd.secrets

echo "wangwu:456" >> /etc/rsyncd.secrets

chmod 600 /etc/rsyncd.secrets

echo "Welcome to access" > /etc/rsyncd.motd

systemctl restart rsyncd

客户端同步数据
在客户端主机中一样是使用rsync命令进行初始化数据传输,使用一样的程序。

yum install rsync

rsync -vzrtopg --progress zhangsan@192.168.5.12::common /test

 

 

rsync命令的描述和用法以下。

描述:一个快速、多功能的远程(或本地)数据复制工具。

用法:下表较全面地介绍了rsync的语法格式,SRC表示源路径,DEST表示目标路径。

本地复制

rsync [选项] SRC... [DEST]

经过远程shell复制
下载数据

rsync [选项] [USER@]HOST:SRC…[DEST]

上传数据

rsync [选项] SRC... [USER@]HOST:DEST

经过rsync远程复制
下载数据

Rsync [选项] [USER@]HOST::SRC…[DEST]

Rsync [选项]rsync://[USER@]HOST[:PORT]/SRC…[DEST]

上传数据

Rsync [选项]SRC…[USER@]HOST::DEST

Rsync [选项]SRC...rsync://[USER@]HOST[:PORT]/DEST

选项:-v,--verbose    显示详细信息

   -q,--quiet      静默模式,无错误信息

   -a,--archive      归档模式,主要保留文件属性,等同于-rlptgoD

   -r,--recursive      递归

   -b,--backup      若是目标路径已经存在同名文件,将旧的文件重命名为~filename,可使用--suffix指定不一样的备份前缀。

   --back-dir      将备份文件保存至指定目录

   --suffix      指定备份文件前缀

   -u,--update    若是目标地址中的文件比将要下载的文件新,则不执行同步,也就是说,不会用旧的文件覆盖新的文件。

   -l,--links      保留符号连接

   -p,--perms    保留文件权限属性

   -H,--hard-links    保留硬连接

   -A,--acls    保留ACL权限

   -X,--xattrs    保留文件附加属性

   -o,--owner      保留文件全部者属性

   -g,--group      保留文件所属组属性

   --devices      保留设备文件

   --specials      保留特殊文件

   -D          等同于-devices-specials

   -t        保留修改时间属性

   -W,--whole-file      不作增量检查,直接复制所有文件

   -e,--rsh=COMMAND    指定远程shell

   --existing      仅同步目标路径中已经有的文件,不下载源路径下新的文件

   --delete        删除那些仅在目标路径中存在的文件(源路径中不存在)

   -z,--compress      传输过程当中对数据进行压缩

   --include=PATTERN    匹配不排除的文件

   --exclude=PATTERN    匹配须要排除的文件

   --progress      显示数据传输的进度信息

   --partial      保留因故障未传输完成的文件

   -P      等同于--progress-partial

   --password-file=FILE      指定密码文件,将密码写入文件,实现非交互式数据同步

   --list-only      仅列出服务器模块列表,须要rsync 服务器设置list=true

相关文章
相关标签/搜索