Rsync 是一种功能强大的文件同步工具,广泛应用于 Linux 系统中的数据备份和文件同步任务。它通过比较文件的修改时间和大小来实现增量备份,大大提高了同步效率,减少了网络带宽的使用,并且支持多种同步选项,如压缩、加密和排除特定文件等。
Rsync 通过比较文件的修改时间和大小,只同步发生变化的部分,而不是整个文件。这使得同步过程更加高效,特别是在处理大量文件和大文件时,能够显著减少数据传输量和同步时间。
Rsync 支持本地同步和远程同步。本地同步可以用于在同一个系统内的不同目录之间同步文件(相当于cp),而远程同步则可以通过网络将文件同步到远程服务器或从远程服务器同步文件(相当于scp)。Rsync 支持多种传输协议,包括 SSH、Rsync 协议等,确保数据传输的安全性和可靠性。
Rsync 提供了丰富的配置选项,用户可以根据具体需求进行定制。例如,可以指定同步时排除特定的文件或目录,设置同步的权限和所有权,启用压缩传输以减少带宽使用,等等。
Rsync 可以通过 SSH 协议进行数据传输,确保数据在传输过程中的加密和安全。此外,还可以通过配置文件设置用户认证和访问控制,进一步增强安全性。
-avz
--exclude=file #指定排除不需要传输的文件
--exclude-from=file #指定排除文件目中不需要传输的
--bwlimit=100 #限速传输文件
--partial #点续传输
--delete #同步数据(以谁为基准就将谁写在前面)
命令格式:rsync [参数选项] 源目录 目标目录
#示例一:将/root/user/data 目录同步到/backup/data
#命令演示: rsync -avz /root/user/data /backup/data
#参数详解: -a 表示归档模式,保留文件权限、属性
-v 表示详细模式,输出同步过程中的详细信息
-z 表示压缩传输,减少带宽使用
命令格式:rsync [参数选项] 源目录 [用户名@主机IP] :目标目录
#示例一:将本地的/root目录上传到10.0.0.7主机上的/tmp目录下
#命令演示: rsync -avz /root root@10.0.0.7:/tmp
#示例二:将本地的/root目录下的所有内容上传到10.0.0.7主机上的/tmp目录下
#命令演示: rsync -avz /root/ root@10.0.0.7:/tmp
命令格式:rsync [参数选项] [用户名@主机IP] :目标目录 源目录
#示例一:将10.0.0.7主机上的/code/1.txt下载到本地的/tmp目录下
#命令演示:rsync -avz root@10.0.0.7:/code/1.txt /tmp/
传输服务器:web01:10.0.0.7
存储服务器:backup:10.0.0.41
yum -y install rsync
vim /etc/rsyncd.conf
uid = rsync #rsync启动用户(重要)
gid = rsync #rsync启动用户(重要)
port = 873 #rsync服务端口
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup (重要) #远程同步的虚拟用户
secrets file = /etc/rsync.passwd (重要) #远程同步的密码
log file = /var/log/rsyncd.log
#####################################
[backup] #模块名称
path = /backup #目录
根据配置文件在backup服务器上要创建rsync用户、远程同步的密码文件/etc/rsync.passwd、以及 远程同步模块下的目录 /backup
groupadd -g 666 rsync
useradd -u 666 -g 666 -M -s /sbin/nologin rsync
echo "rsync_backup:123456" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
mkdir /backup
chown rsync.rsync /backup #(不修改的话客户端上传文件无法写入因为其实创建属主和属组是root,上传是以rsync用户传输)
systemctl start rsyncd
systemctl enable rsyncd
netstat -lntup | grep 873
#示例一演示:需要输入密码
rsync -avz /code/1.txt rsync_backup@10.0.0.41::backup
#示例二演示:不需要输入密码
export RSYNC_PASSWORD=123456
rsync -avz /code/1.txt rsync_backup@10.0.0.41::backup
#示例三演示:不需要输入密码
echo "123456" > /tmp/mima.txt
chmod 600 /tmp/mima.txt
rsync -avz /code/1.txt rsync_backup@10.0.0.41::backup --password-file=/tmp/mima.txt
Rsync 服务在 Linux 系统中用于高效的数据备份和文件同步。通过检查服务状态、配置文件、防火墙和 SELinux 设置,可以有效排查和解决 Rsync 服务启动和连接问题。确保配置文件正确、路径存在、权限正确,并且防火墙和 SELinux 设置允许 Rsync 服务运行,是保障 Rsync 服务正常运行的关键。