Linux系统中的Rsync服务

一、Rsync服务概述

Rsync 是一种功能强大的文件同步工具,广泛应用于 Linux 系统中的数据备份和文件同步任务。它通过比较文件的修改时间和大小来实现增量备份,大大提高了同步效率,减少了网络带宽的使用,并且支持多种同步选项,如压缩、加密和排除特定文件等。

二、Rsync主要特点

1、增量同步

Rsync 通过比较文件的修改时间和大小,只同步发生变化的部分,而不是整个文件。这使得同步过程更加高效,特别是在处理大量文件和大文件时,能够显著减少数据传输量和同步时间。

2、支持多种同步方式

Rsync 支持本地同步和远程同步。本地同步可以用于在同一个系统内的不同目录之间同步文件(相当于cp),而远程同步则可以通过网络将文件同步到远程服务器或从远程服务器同步文件(相当于scp)。Rsync 支持多种传输协议,包括 SSH、Rsync 协议等,确保数据传输的安全性和可靠性。

3、高度可配置

Rsync 提供了丰富的配置选项,用户可以根据具体需求进行定制。例如,可以指定同步时排除特定的文件或目录,设置同步的权限和所有权,启用压缩传输以减少带宽使用,等等。

4、安全性

Rsync 可以通过 SSH 协议进行数据传输,确保数据在传输过程中的加密和安全。此外,还可以通过配置文件设置用户认证和访问控制,进一步增强安全性。

三、Rsync参数选项

-avz
--exclude=file          #指定排除不需要传输的文件
--exclude-from=file  #指定排除文件目中不需要传输的
--bwlimit=100          #限速传输文件
--partial                   #点续传输
--delete                   #同步数据(以谁为基准就将谁写在前面)

 四、Rsync基本使用方法

1、本地同步

命令格式:rsync [参数选项]  源目录   目标目录

#示例一:将/root/user/data 目录同步到/backup/data

#命令演示: rsync -avz /root/user/data /backup/data

#参数详解: -a 表示归档模式,保留文件权限、属性

                     -v 表示详细模式,输出同步过程中的详细信息

                     -z 表示压缩传输,减少带宽使用

2、远程上传 

命令格式: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

 3、远程下载

命令格式:rsync [参数选项]    [用户名@主机IP]  :目标目录    源目录

#示例一:将10.0.0.7主机上的/code/1.txt下载到本地的/tmp目录下

#命令演示:rsync -avz root@10.0.0.7:/code/1.txt /tmp/

4、Rsync守护进程模式 

4.1、准备两台服务器。

       传输服务器:web01:10.0.0.7

       存储服务器:backup:10.0.0.41

4.2、在backup服务器上下载rsync

yum -y install rsync

4.3、配置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                                                            #目录

 4.4、根据配置文件创建必要的内容

根据配置文件在backup服务器上要创建rsync用户、远程同步的密码文件/etc/rsync.passwd、以及 远程同步模块下的目录 /backup 

4.4.1、创建rsync用户

groupadd -g 666  rsync

useradd -u 666 -g 666 -M -s /sbin/nologin rsync

4.4.2、创建密码文件 

echo "rsync_backup:123456" > /etc/rsync.passwd

4.4.3、修改密码文件权限为600

chmod 600 /etc/rsync.passwd

4.4.4、 创建远程同步模块下的目录 /backup 

mkdir /backup 

4.4.5、修改目录/backup的属主和属组 

chown  rsync.rsync /backup      #(不修改的话客户端上传文件无法写入因为其实创建属主和属组是root,上传是以rsync用户传输)

4.5、开启rsync服务并写入开机自启动 

systemctl start rsyncd

systemctl enable rsyncd 

4.6、查看端口,检查rsync服务是否开启 

netstat -lntup | grep 873 

4.7、在传输服务器上传/code/1.txt文件 

#示例一演示:需要输入密码

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 服务正常运行的关键。 

你可能感兴趣的:(linux,运维,服务器)