🚩本文介绍
在信息化快速发展的今天,文件同步的需求日益显著,无论是在企业内部的文件共享,还是在跨地域的数据备份,高效的文件同步都是不可或缺的一环。而Rsync作为一种快速、增量、远程(和本地)文件复制工具,正是实现这一目标的理想选择。
本文将为小伙伴们详细介绍如何轻松搭建Rsync服务,实现高效文件同步。无需具备深厚的专业知识,只需按照本文的指引,就能轻松搭建起一套高效、稳定的Rsync文件同步系统。
🏆荣誉认证:51CTO博客专家博主、2023年度博主Top3、TOP红人、明日之星;CSDN开发者社区运维领域优质创作者、2023年大学生博主学习挑战赛Top2;阿里云开发者社区专家博主、技术博主、星级博主、云计算方向ACP证书获得者;
💻本文由微笑的小许原创!
🎉欢迎关注🔎点赞👍收藏⭐留言📝
📆首发时间:🌴2024年4月26日🌴
✉️坚持和努力一定能换来诗与远方!
🙏作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!
不要偷走我小火车哦~ ~ ~
文章目录
- 🚩本文介绍
- 安装Rsync服务并修改配置文件
- 服务端配置
- 客户端配置
- 相关报错及解决方案
Rsync_29">安装Rsync服务并修改配置文件
安装服务
默认系统都已经安装好rsync,可以通过以下命令查询是否已经安装
Linux">[root@rsync ~]# rsync --version---
如果没有安装可以使用以下命令进行安装Rsync
[root@rsync ~]# yum -y install rsync
修改Rsync配置文件内容信息
[root@rsync ~]# vim /etc/rsyncd.conf
配置文件参数说明
uid = rsync #Rsync服务用户,默认为nobody,gid = rsync #Rsync服务用户组,默认为nobodyfake super = yes #允许进程不以root身份运行,就可以改变文件属性use chroot = no #如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺 点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true。max connections = 200 #设置最大连接数,默认为0表示无限制,负值表示关闭这个功能timeout = 400 #超时时间,以秒为单位pid file = /var/run/rsyncd.pid #Rsync Daemon启动后将其进程PID写入到此文件中,如果这个文件已经存在,Rsync进程不会覆盖该文件,而是会终止lock file = /var/run/rsyncd.lock #指定lock文件用来支持“max connections”参数,使得总连接数不会超过限制,默认为/var/run/rsyncd.locklog file = /var/log/rsyncd.log #保存Rsync输出的相关日志信息ignore errors #忽略I/O错误read only = false #指定客户端是否可以上传文件,默认所有模块都为true表示可写入list =false #是否允许客户端可以查看可用模块列表,默认为可以,如果配置为yes或者true,执行rsync 192.168.100.20::命令会显示配置的模块信息hosts allow = 192.168.100.0/24 #指定可以连接的客户端主机名或者IP地址段,表示白名单hosts deny = 0.0.0.0/32 #指定不可连接的客户端主机名或者IP地址段,表示黑名单auth users = rsync_backup #指定客户端可以使用的用户名和哪些模块,多个用户或模块可以用空格或者逗号分隔secrets file = /etc/rsync.password #指定用户名和密码存放的文件,格式为用户名:密码[backup] #模块名称,需要用括号括起来path = /backup #模块中存在文件的目录路径
服务端配置
创建相关用户和目录
创建管理员备份目录的用户
[root@rsync ~]# useradd rsync -s /sbin/nologin
创建backup备份目录
[root@rsync ~]# mkdir -p /backup
授权Rsync用户和组管理/backup用户
[root@rsync ~]# chown -R rsync.rsync /backup
配置账号密码及文件权限
将账号和密码写入存放密码文件中
Linux">[root@rsync ~] # echo "rsync_backup:Admin@123" >/etc/rsync.password
修改文件权限
Linux">[root@rsync ~]# chmod 600 /etc/rsync.password
启动服务并检查服务状态
启动Rsync服务
Linux">[root@rsync ~]# systemctl start rsyncd
设置开机自启
Linux">[root@rsync~]# systemctl enable rsyncd
检查启动状态
Linux">[root@rsync ~]# systemctl status rsyncd
客户端配置
配置密码文件并修改文件权限
检查客户端是否已安装Rsync
Linux">[root@rsync ~]# rsync --version
如果没有安装使用命令安装
Linux">[root@rsync ~]# yum -y install rsync
配置客户端密码文件
Linux">[root@rsync ~]# echo "Admin@123" >/etc/rsync.password---
注:客户端密码需和服务端密码一致
修改文件权限
Linux">[root@rsync ~]# chmod 600 /etc/rsync.password---
600表示只有拥有者有写权限、其他用户没有任何权限
相关报错及解决方案
报错一:
rsync:failed to connect to 192.168.100.20:No route to host (113)rsync error:error in socket IO (code 10)at client server.c(104)[receiver=3.0.6]
原因:对方没开机、被防火墙阻止了、端口没有开放
解决方法:
[root@rsync ~]# iptables -l INPUT -p tcp -dport 837 -j ACCEPT---
开放837端口
或者直接关闭防火墙
[root@rsync ~]# ststemctl stop firewalld
[root@rsync ~]# systemctl disable firewalld
报错二:
sending incremental file list
rsync:recv generator:mkdir "test"(in backup)failed:Permission denied (13)
**Skipping any contents from this failed directory **
test/sent 91 bytes received 172 bytes
526.00 bytes/sec
total size is 17 speedup is 0.06
原因: 没有关闭SElinux导致的
解决方法:
[root@rsync ~]# setenforce 0
[root@rsync ~]# vim /etc/selinux/config---
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #把默认的参数修改为disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted