38.rsync远程数据同步
rsync及remote synchronize实现远程同步功能的软件,在同步文件的同时可以保持文件的权限、时间戳等文件属性。传输采用ssh方式加密传输更为安全可靠,且传输过程中对文件进行压缩节省了带宽,最具特点的是rsync采用的是差异备份只同步备份源中有变动的文件。
服务器端:192.168.252.130
客户端:192.168.252.128
一、在服务器端架设rsync备份源
1.1建立一个共享目录并在其中建立一个文件作为源文件,编写rsync配置文件对该目录内容进行共享。
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 //用户数据库文件
1.3建立授权用户数据库文件,并修改文件权限为600
vim /etc/rsyncuser.db
chmod 600 /etc/rsyncuser.db
1.4 启动rsync服务,并查看服务是否启动
二、客户端使用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://simpleuser@192.168.252.130/fusana /var/share/
2.2下行同步方法二
格式:通过主机名@主机地址::共享模块名
rsync -avz simpleuser@192.168.252.130::fusana /var/share
2.3下行同步
上行是以客户端文件为源文件向服务器端同步,由于rsync在服务器端是以nobody身份运行,因此需要为服务端的共享目录添加其他用户非写权限,客户端再将本地的文件向上同步到服务器端。
a.在服务器端设置,修改共享目录的权限为777
b.客户端
rsync -avz /boot/grub/ simpleuser@192.168.252.130::fusana
报错:
rsync: failed to set times on "/." (in fusana): Operation not permitted (1)
参考报错解决办法:rsync文件同步报错
将服务器的共享文件夹的用户,用户组都改为nobody
回到客户端,再次尝试同步,不再报错。
存在问题:上传文件到服务器,没在服务器收到
根据实验吧实验编写:rsync远程数据同步