Rsync教程--linux服务器文件实时同步

目录

一 、什么是rync ?

二、准备工作(linux-linux文件实时同步)

三、安装配置 Rsync服务端(linux)

四、安装Rsync客户端

五、客户端测试-使用Rsync服务将远端的backup目录拉取到当前目录

六、Rsync配置文件详解

七、Rsync常用命令

版权声明


一 、什么是rync ?

  1. rsync —— remote synchronize ,是一款实现远程同步功能的软件;

  2. rsync使用“Rsync算法”来同步文件,该算法只传送两个文件的不同部分,因此速度相当快;

  3. 同步文件的同时,可以保持原来文件的权限、时间和目录结构;

  4. 对于多个文件来说,内部流水线减少文件等待的延时;

  5. rsync默认监听TCP 873端口,通过远程shell如rsh和ssh复制文件。同时要求必须在远程和和本地系统上都安装sync。

  6. 官网rsync.samba.org/

二、准备工作(linux-linux文件实时同步)

  1. 源文件地址(服务端):192.168.201.225 redhat

  2. 目标文件地址(客户端):192.168.201.226 redhat

  3. 请关闭防火墙:systemctl stop firewalld.service

  4. 查看防火墙状态:firewall-cmd --state

  5. 请将/etc/sysconfig/selinux/config文件中SELINUX的值为disable,修改后重启linux使修改生效,否则将影响文件同步

  6. 以下步骤达到的效果:服务端192.168.201.225  中进行同步的文件夹下的内容(/usr/backups/)同步复制到客户端192.168.201.226 中(/testrsync)。

  7. 操作系统信息如下:

  8. [root@localhost ~]# uname -a
    Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Tue Aug 18 14:50:17 EDT 2020 x86_64 x86_64 x86_64 GNU/Linux

三、安装配置 Rsync服务端(linux)

  • 检查有没有安装Rsync,默认已安装(该命令会详细展示参数信息,详见附录1:rsync参数

    [root@localhost ~]# rsync	
    rsync  version 3.1.2  protocol version 31
    Copyright (C) 1996-2015 by Andrew Tridgell, Wayne Davison, and others.
    Web site: http://rsync.samba.org/
    Capabilities:
        64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
        socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
        append, ACLs, xattrs, iconv, symtimes, prealloc
    
    rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
    are welcome to redistribute it under certain conditions.  See the GNU
    General Public Licence for details.

  • Rsync安装,如未安装rsync,命令为:yum -y install rsync
yum -y install rsync
  • 配置rsync.conf文件(/etc/rsyncd.conf)
uid = root
gid = root 
#端口 
port = 873 
# 如果"use chroot"指定为true,那么rsync在传输文件以前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但是缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true.但是一般不需要,选择no或false 
use chroot = yes 
read only = on 
#不允许列清单 
list = no 
#最大连接数 
max connections = 4 
#pid文件的存放位置 
#pidfile = /var/run/rsyncd.pid  
#锁文件的存放位置 
#lock file=/var/run/rsyncd.lock 
#日志文件的存放位置 
log file = /var/log/rsyncd.log 
motd file = /etc/rsyncd/rsyncd.motd 
# //此文件定义完成后系统会自动创建 
exclude = lost+found/ 
transfer logging = yes 
#覆盖客户指定的IP超时时间,也就是说rsync服务器不会永远等待一个崩溃的客户端。 
timeout = 900 
ignore nonreadable = yes 
# //同步时跳过没有权限的目录 
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 
#  //传输时不压缩的文件 
#哪些电脑可以访问rsync服务,这里可以指定单个IP,也可以指定整个网段,能提高安全性。格式是ip 与ip 之间、ip和网段之间、网段和网段之间要用空格隔开 
#hosts allow = 192.168.100.114
#哪些电脑不可以访问rsync服务 
#hosts deny = 172.25.0.0/24 
#这里是认证模块名,即跟samba语法一样,是对外公布的名字 
[backup] 
comment = this is module for backup 
#这里是参与同步的目录
path = /usr/backups/ 
#可以忽略一些无关的IO错误 
ignore errors 
#允许可读可写
read only = no 
#认证的用户名 
auth users = root 
#密码文件存放地址 
secrets file = /etc/rsyncd.password
  • 服务端添加相关文件和目录

    1. 创建服务端备份路径并赋权,同conf配置文件中的path /usr/backups/

    2. 新增服务端密码文件 rsync.password,内容为 用户名:密码

[root@localhost ~]# mkdir /usr/backups/
[root@localhost ~]# chown -R root:root /usr/backups/
[root@localhost ~]# cat /etc/rsync.password 
root:Jtfund202309!#
[root@localhost ~]# chmod 600 /etc/rsync.password
  • 启动Rsync服务

    1. 服务端守护进程模式启动。

[root@localhost ~]# rsync --daemon
  • 查看服务是否启动正常-查看873端口是否打开

[root@localhost ~]# netstat -lntup |grep rsync
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      18101/rsync
tcp6       0      0 :::873                  :::*                    LISTEN      18101/rsync
[root@localhost ~]# ps -ef |grep rsync |grep -v grep
root     18101     1  0 1月10 ?       00:00:00 /usr/bin/rsync --daemon

四、安装Rsync客户端

  • 检查有没有安装Rsync,默认已安装。
[root@localhost ~]# rsync
  • Rsync安装,如未安装rsync,命令为:yum -y install rsync
yum -y install rsync
  • 客户端添加密码文件并修改权限,与服务端密码文件是不同的,客户端只写密码,不写用户!

[root@localhost ~]# cat /etc/rsync.password 
Jtfund202309!#
[root@localhost ~]# chmod 600 /etc/rsync.password

五、客户端测试-使用Rsync服务将远端的backup目录拉取到当前目录

  1. 测试Rsync服务

[root@localhost ~]# rsync -avzP root@192.168.201.225::backup /testrsync  --password-file=/etc/rsync.password

receiving incremental file list

sent 24 bytes  received 68 bytes  184.00 bytes/sec
total size is 4  speedup is 0.04
  1. 查看客户端的/testrsync目录是否有hello.txt文件

# cat /testrsync/123
#Rsync test
Hello World

六、Rsync配置文件详解

uid = rsync     #rsync使用的用户,默认nobody
gid = rsync     #rsync使用的gid 默认nobody
use chroot = no    #是否限定在该目录下,默认为true,当有软连接时,需要改为fasle,如果为
                   #true就限定为模块默认目录,通常都在内网使用rsync所以不配也可以
max connections = 200 #设置最大连接数timeout = 300 #超时时间 建议300-600
pid file = /var/run/rsyncd.pid    #pid文件位置
lock file = /var/run/rsync.lock  #指定lock文件用来支持“max connections ”参数使总连接不会超过限制
log file = /var/log/rsyncd.log #日志文件路径
ignore errors #忽略io错误
read only = false #指定客户端是否可以上传文件,默认
truelist = false #是否允许客户端查看可用模块 
hosts allow = 192.168.253.0/24 #允许连接的ip段或个别ip,默认任何人都可以连接
hosts deny = 0.0.0.0/32 #不允许连接的IP段或个别ip
auth users = rsync_backup #指定以空格或逗号分隔用户,他们可以使用这个模块,用户不需要再本
                          #系统存在,默认所有用户都可以无密码登录
secrets file = /etc/rsync.password #指定用户名和密码文件 格式: 用户名:密码 密码不超过8位
                                   #这个是密码文件  全线最好是600
[backup] comment = "this is a comment" #此参数指定在客户端获取可用模块列表时显示在模块名称旁边的描述字
                                       ##符串,默认没有这个参数
path = /backup #模块在服务端的绝对路径

七、Rsync常用命令

Local: rsync [OPTION...] SRC... [DEST] =====>本地的推送格式
Access via remote shell:
Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
Access via rsync daemon:
Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST]
rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST]
Push: rsync [OPTION...] SRC... [USER@]HOST::DEST
rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST
  • 常用的选项

-v 详细模式输出 传输时候显示进度等信息
-z 传输时进行压缩提高传输速率 --compuress-level=num 可以按级别压缩
-r 对子目录以递归模式,即目录下的所有目录都同样传输
-t 保持文件时间信息
-o 保持文件属性信息
-g 保持稳健属组信息
-a 归档模式 相当于 rtopg
-P 显示同步过程及传输时进度信息
-e 使用信道协议 指定替代rsh 的shell程序 如ssh
--exclude=PATTERN 指定排除不需要传输的文件 支持*来代替任意字符
-D 保持设备文件信息
-l 保留软连接
常用的选项为 avz
  • 常见用法

将当前目录的hello.txt推送到服务端的backup模块
rsync -avz -P hello.txt  rsync_backup@192.168.253.153::backup --password-file=/etc/rsync_passwd 
或者
rsync -avz -P hello.txt  rsync://rsync_backup@192.168.253.153:/backup --password-file=/etc/rsync_passwd

将远端的backup目录拉取到当前目录
rsync -avz -P   rsync://rsync_backup@192.168.253.153:/backup ./  --password-file=/etc/rsync_passwd 
或者
rsync -avz -P   rsync_backup@192.168.253.153::backup ./  --password-file=/etc/rsync_passwd
也可以利用ssh

版权声明

版权声明:
本文参考了CSDN博主「十五十六」的原创文章, 原文链接:https://blog.csdn.net/L835311324/article/details/80501105

本文参考了CSDN博主「萧萧云星」的原创文章, 原文链接:
https://blog.csdn.net/XiaoXiaoYunXing/article/details/120160395

本文参考了CSDN博主「永夜Evernight」的原创文章, 原文链接:
https://blog.csdn.net/qq_38766930/article/details/123641213

  • 44
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
rsync是一个用于文件同步和备份的实用工具,而rsync--daemon是rsync的守护进程模式。通过启动rsync守护进程,可以在Linux系统上运行rsync服务,允许其他计算机通过网络连接并与之通信。 要在Linux上启动rsync守护进程,可以按照以下步骤进行操作: 1. 确保你已经安装了rsync软件包。如果没有安装,可以使用适合你的Linux发行版的包管理器进行安装。 2. 编辑rsync的配置文件,通常位于/etc/rsyncd.conf。可以使用文本编辑器(如vi或nano)打开该文件。 3. 在配置文件中,你可以定义rsync守护进程的参数和模块。模块是指定要同步的目录或文件集合。你可以为每个模块指定不同的参数和权限。 以下是一个示例配置文件的简单示例: ``` # /etc/rsyncd.conf # 全局配置 uid = nobody gid = nobody use chroot = yes max connections = 10 log file = /var/log/rsyncd.log # 模块定义 [module1] path = /path/to/module1 comment = Module 1 read only = yes list = yes [module2] path = /path/to/module2 comment = Module 2 read only = no list = yes ``` 在这个例子中,我们定义了两个模块(module1和module2),分别指向不同的目录,并设置了相应的权限和注释。 4. 保存并关闭配置文件。 5. 启动rsync守护进程。在终端中执行以下命令: ``` rsync --daemon ``` 如果一切顺利,rsync守护进程将会启动,并开始监听指定的端口(默认为873)。 现在,其他计算机可以使用rsync客户端连接到你的Linux系统上的rsync守护进程,并进行文件同步和备份操作。例如,可以使用以下命令从客户端同步文件服务器: ``` rsync -avz /path/to/source username@server_ip::module_name ``` 其中,/path/to/source是要同步的源文件或目录,username是具有合适权限的用户名,server_ip是运行rsync守护进程的服务器IP地址,module_name是在配置文件中定义的模块名称。 这是关于在Linux上使用rsync--daemon的简要说明。有关更多详细信息和参数选项,请查阅rsync的官方文档或执行`man rsync`命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮猴的路数

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值