38.rsync远程数据同步

      rsync及remote synchronize实现远程同步功能的软件,在同步文件的同时可以保持文件的权限、时间戳等文件属性。传输采用ssh方式加密传输更为安全可靠,且传输过程中对文件进行压缩节省了带宽,最具特点的是rsync采用的是差异备份只同步备份源中有变动的文件。

服务器端:192.168.252.130

客户端:192.168.252.128

一、在服务器端架设rsync备份源

1.1建立一个共享目录并在其中建立一个文件作为源文件,编写rsync配置文件对该目录内容进行共享。

38.rsync远程数据同步_第1张图片

1.2修改rsyncd的配置文件

vim /etc/rsyncd.conf

uid=nobody  //用户

gid=nobody  //组

use chroot=yes  //目录保护

address=192.168.252.130  //根据当前服务端IP设定

port 873 //端口

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

[fusana]

path=/var/share  //源文件目录

comment=share dir //描述

read onlt=no //是否只读

dont compress=*.gz *.bz2 *.tgz *.zip *.rar *.z  //不压缩项

auth users=simpleuser  //指定用户(非本地用户)

secrets file=/etc/rsyncuser.db  //用户数据库文件

38.rsync远程数据同步_第2张图片

1.3建立授权用户数据库文件,并修改文件权限为600

vim /etc/rsyncuser.db

chmod 600 /etc/rsyncuser.db

38.rsync远程数据同步_第3张图片

1.4 启动rsync服务,并查看服务是否启动

38.rsync远程数据同步_第4张图片

二、客户端使用rsync工具与服务器端同步

rsync [选项] 原始位置 目标位置

常用选项

-r:递归模式包含目录子目录

-l:对于符号链接文件依然复制为符号连接

-v:详细信息

-a:归档模式等于rlptgoD

-z:传输中压缩

-p:保留文件的权限标记

-t:保留时间标记

-g:保留文件属组 root使用

-o:保留文件属主 root使用

-H:保留硬链接

-A:保留ACL属性信息

-D:保留设备文件及其他特殊文件

--delete:删除目标位置有,源位置没有的文件

--checksum:根据校验码来决定是否忽略文件

2.1下行同步方法一

格式:rsync://用户名@主机地址/共享模块名

mkdir /var/share  

rsync -avz rsync://[email protected]/fusana /var/share/

38.rsync远程数据同步_第5张图片
38.rsync远程数据同步_第6张图片

2.2下行同步方法二

格式:通过主机名@主机地址::共享模块名

rsync -avz [email protected]::fusana /var/share

38.rsync远程数据同步_第7张图片

2.3下行同步

上行是以客户端文件为源文件向服务器端同步,由于rsync在服务器端是以nobody身份运行,因此需要为服务端的共享目录添加其他用户非写权限,客户端再将本地的文件向上同步到服务器端。

a.在服务器端设置,修改共享目录的权限为777

38.rsync远程数据同步_第8张图片

b.客户端

rsync -avz /boot/grub/ [email protected]::fusana

38.rsync远程数据同步_第9张图片

报错:

rsync: failed to set times on "/." (in fusana): Operation not permitted (1)

参考报错解决办法:rsync文件同步报错

将服务器的共享文件夹的用户,用户组都改为nobody

38.rsync远程数据同步_第10张图片

回到客户端,再次尝试同步,不再报错。

38.rsync远程数据同步_第11张图片

存在问题:上传文件到服务器,没在服务器收到

根据实验吧实验编写:rsync远程数据同步

你可能感兴趣的:(38.rsync远程数据同步)