Rsync 文件同步(一):系统基本操作

这篇具有很好参考价值的文章主要介绍了Rsync 文件同步(一):系统基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基础认知

Rsync (remote sync)

  • UNIX 及类 UNIX 平台下一款数据镜像备份软件
  • 很神奇
  • 不同于 FTP 或其他文件传输服务进行全量备份,它可以根据数据的变化进行差异备份
  • 可以使用它进行本地数据或远程数据的复制
  • 可以使用 SSH 安全隧道进行加密数据传输
  • Rsync 服务端定义源数据,客户端仅在源数据发生改变后才会从服务端上实际复制数据至本地
  • 源数据备删除,则客户端数据也会被删除
  • Rsync 使用 TCP 873 端口

官网

rsync (samba.org)

Logo

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

Rsync 服务端

环境说明

  • 2核2G的虚拟机
  • CentOS Linux release 7.9.2009 (Core)
  • 需要共享或者同步的目录:/home/share
  • 静态地址:

从官网看最新版本是3.2.7,我们在线安装的版本试试是多少(试过是3.1.2)

前置设置

  1. 更换国内yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo  http://mirrors.163.com/.help/CentOS7-Base-163.repo
yum clean all && yum makecache

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 在线安装 Rsync
#版本的差异性具体可以看官网说明
yum install rsync -y

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 关闭selinux与防火墙
systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#操作后重启服务器

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

配置说明

  • 默认是不存在 Rsync 配置文件的,作为服务端,肯定是需要一个配置文件,然后使用守护进程模式启动 rsync 服务即可
  • 主要的三个配置文件
    • rsyncd.conf 主配置文件
    • rsyncd.secrets 密码文件
    • rsyncd.motd 服务器信息文件

创建共享目录,存入测试文件

mkdir -p /home/share

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

配置文件详解

######配置文件位置:/etc/rsyncd.conf
##############以下是配置文件主内容##############
#服务器信息文件,同步文件的时候展示的内容
motd file = /etc/rsyncd.motd
#是否开启文件传输日志功能
transfer logging = yes
#日志文件名称
log file = /var/log/rsyncd.log
#进程号保存文件
pid file = /var/run/rsyncd.pid
#锁文件名称
lock file = /var/run/rsync.lock
#服务器监听的端口号
port = 873
#服务器监听网卡接口的ip地址
address = 0.0.0.0
#设置进行数据传输时所使用的账号名称或ID号
uid = 0
#设置进行数据传输时所使用的组名称或者GID号
gid = 0
#chroot为yes会改变根目录,会将根目录映射到path选项的目录下,对客户端,系统的根就是path所指的路径,这样做需要root权限
use chroot = yes
#设置并发数,0代表无限制,如果超出并发数,依然有客户端连接的话,就会收到稍后重试的提示
max connections = 10
##############以下是模块内容##############
#rsync通过模块定义同步的目录,与samba定义共享目录的效果,可以定义多个模块
#模块名称
[test]
#模块说明
comment = then is test
#同步目录
path = /home/share
#忽略一些IO错误
ignore errors
#exclude可以指定例外的目录,对/home/share目录下的某个目录设置为不同步数据
#exclude = test/
#设置允许连接服务端的账号,账号可以是系统中不存在的用户
auth users = test1
#设置密码验证文件名称和路径,文件权限要求为只读,权限建议600,仅在设置auth users参数后有效
secrets file = /etc/rsyncd.secrets
#客户端请求显示模块列表外,是否显示
list = true

创建密码文件

echo 'test1:123456' >> /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

#可以在服务器信息文件写入一些描述
echo 'Welcome to Rsync' >> /etc/rsyncd.motd

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

daemon 运行

#其实就是启动一个服务,对于centos7来说
systemctl restart rsyncd

#配置开机启动起
systemctl enable rsyncd

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

Rsync 客户端

安装客户端

##按照前面的设置安装rsync即可,唯一的区别就是不用配置文件和daemon运行
rsync --version

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

rsync 命令使用

SRC 表示源路径,DEST 表示目标路径

本地复制

rsync [选项] SRC [DEST]

通过远程 shell 执行复制

下载数据:rsync [选项] [USER@]HOST:SRC [DEST]

上传数据:rsync [选项] SRC [USER@]HOST:DEST

通过 rsync 进程复制

下载数据:

  • rsync [选项] [USER@]HOST::SRC [DEST]

  • rsync [选项] rsync://[USER@]HOST[:PORT]/SRC [DEST]

上传数据:

  • rsync [选项] SRC [USER@]HOST::DEST
  • rsync [选项] SRC rsync://[USER@]HOST[:PORT]/DEST

第一个路径参数一定是源文件路径,即作为同步基准的一方,可以同时指定多个源文件路径。最后一个路径参数则是目标文件路径,也就是待同步方。路径的格式可以是本地路径,也可以是使用user@host:path或user@host::path的远程路径,如果主机和path路径之间使用单个冒号隔开,表示使用的是远程shell通信方式,而使用双冒号隔开的则表示的是连接rsync daemon。另外,连接rsync daemon时,还提供了URL格式的路径表述方式rsync://user@host/path

选项

选项 说明
-v 显示详细信息
-q 静默模式,无错误信息
-a 归档模式,主要保留文件属性
-r 递归
-b 存在同名文件则旧的重命名为【~filename】,使用 --suffix指定不同的备份前缀
–back-dir 将备份文件保存指定目录
–suffix 指定备份文件前缀
-u 目标地址要比下载的文件新,则不执行同步,不会用旧文件去覆盖新的
-l 保留符号链接
-p 保留文件属性
-H 保留硬链接
-A 保留ACL权限
-X 保留文件附加属性
-o 保留文件所有者属性
-g 保留文件所属组属性
–devices 保留设备文件
–specials 保留特殊文件
-D 等同于 --devices --specials
-t 保留修改时间属性(任何时候使用都应该加上)
-W 不做增量检查,直接复制全部文件
-e 指定远程shell
–existing 仅同步目标路径已经有的文件,不下载源路径下的新文件
–delete 删除那些仅在目标中存在的文件(源路径不存在)
-z 传输过程中对数据进行压缩
–include=PATTERN 匹配不排除的文件
–exclude=PATTERN 匹配需要排除的文件
–progress 显示数据传输的进度信息
-partial 保留因故障未传输完的文件
-P 等同于–progress -partial
–password-file=FILE 指定密码文件,将密码写入文件,实现非交互式数据同步
–list-only 仅列出服务器模块列表
-R 使用相对路径。意味着将命令行中指定的全路径而非路径最尾部的文件名发送给服务端,包括它们的属性

rsync 工作方式一:本地实现同步

  1. 将本机的/home/share复制到/tmp下
rsync -avzt /home/share /tmp

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 将本机的/etc/fstab文件复制到/tmp下
rsync /etc/fstab /tmp
#不加任何参数复制文件会导致文件的修改时间

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 将本机的/home/share复制到/tmp下,但是要生成/home子目录
rsync -Rr /home/share /tmp

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 将本机的/var/log/audit/audit.log的文件复制到/home下,但是我只需要log后面的路径
rsync -Rr /var/log/./audit/audit.log /home

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

rsync 工作方式二:通过远程 shell

下载数据:rsync [选项] [USER@]HOST:SRC [DEST]

上传数据:rsync [选项] SRC [USER@]HOST:DEST

  1. 在客户端操作,从服务端去下载/home/share里面的文件
rsync -avzt root@192.168.204.52:/home/share /home

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 将ceshi.txt上传到服务端的/home/share下
rsync -avzt /home/ceshi.txt root@192.168.204.52:/home/share

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

服务端查看这个文件

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

rsync 工作方式三:通过 rsync 进程

要在客户端设置密码文件

echo "123456" > /etc/rsync.pass
chmod 600 /etc/rsync.pass

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

下载数据:

  • rsync [选项] [USER@]HOST::SRC [DEST]

  • rsync [选项] rsync://[USER@]HOST[:PORT]/SRC [DEST]

上传数据:

  • rsync [选项] SRC [USER@]HOST::DEST
  • rsync [选项] SRC rsync://[USER@]HOST[:PORT]/DEST
  1. 显示服务端(192.168.204.52)所有的模块名称,服务端配置了 list=true才可用
rsync --list-only ceshi1@192.168.204.52::

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 从服务端定义的test模块,将定义的路径下载在本地上
rsync -avzt test1@192.168.204.52::test /tmp
#输入密码后即可下载到本地

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步

  1. 客户端指定密码文件进行文件下载
rsync -avzt --password-file=/etc/rsync.pass test1@192.168.204.52::test /tmp
#客户端每次连接rsync输入密码都比较麻烦,我们创建密码文件/etc/rsync.pass,文件中包含了密码,就可以指定了,注意这个密码文件的权限

rsync出错重试,Linux系统运维,运维,linux,云计算,rsync,文件同步文章来源地址https://www.toymoban.com/news/detail-781723.html

到了这里,关于Rsync 文件同步(一):系统基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • sersync+rsync实现文件自动同步

    1、rsync介绍 rsync是类unix系统下的数据备份工具。其首先通过对数据文件进行块划分(通常512字节为一个数据块),然后计算每一个数据块的校验码(有两个校验码:一强一弱,弱校验码用来证明不同,强校验码用来证明相同),远程主机记录每次同步后各数据块的校验码,在

    2024年01月19日
    浏览(35)
  • 使用rsync一直同步阿里云的文件

    要使用 rsync 实时同步阿里云服务器上的文件,你可以遵循以下步骤: 确保本地计算机和阿里云服务器都安装了 rsync 。如果没有安装,请在 Linux 系统上使用以下命令安装: 对于基于 RPM 的 Linux 发行版(例如 CentOS ),使用以下命令安装: 生成 SSH 密钥对,以便在本地计算机和

    2024年02月11日
    浏览(33)
  • Linux下rsync+inotify实现实时文件同步

    一、【接收端配置】 #cat /etc/rsyncd.conf uid = root gid = root max connections = 8 pid file = /var/run/rsyncd.pid log file=/var/log/rsyncd.log hosts allow = 192.168.3.0/24 [dkms] read only=no write only=no path=/data/digitalkey/upload/dkms comment=dkms update auth users=root #必须设置,否则无密码访问 secrets file=/etc/rsync.password #chm

    2024年02月05日
    浏览(28)
  • Linux下的scp 、rsync两种命令同步文件

    scp 还非常不占资源,不会提高多少系统负荷,在这一点上, rsync 就远远不及它了。虽然 rsync比scp 会快一点,但当小文件众多的情况下, rsync 会导致硬盘I/O非常高,而scp基本不影响系统正常使用。 语法 示例 在Linux系统中, rsync 是一种功能强大且广泛使用的文件同步工具。它

    2024年02月14日
    浏览(30)
  • !!!!建议收藏 Rsync项目实践:数据备份 (文件同步到服务器)

    基本备份要求 准备三台服务器,两台web服务器、一台rsync备份服务器 主机名分别为web01、web02、backup [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLf7EhNj-1666099690586)(…/…/图片/image-20221018164708556.png)] 客户端需求 1.客户端每天凌晨01点在服务器本地

    2023年04月08日
    浏览(66)
  • 系统学习Linux-Rsync远程数据同步服务(三)

    rsync是linux 下一个远程数据同步工具 他可通过LAN/WAN快速同步多台主机间的文件和目录,并适当利用rsync 算法减少数据的传输 会对比两个文件的不同部分,传输差异部分,因此传输速度相当快 rsync可拷贝、显示目录属性,以及拷贝文件,并选择性的压缩及递归拷贝 快速 第一次

    2024年02月16日
    浏览(23)
  • linux文件数据同步--实现文件共享与备份(nfs+rsync+httpd+dns)

    目录 实验目地: 实验需求: 各项服务位置以及作用: 整体实验过程: 详细配置: Rsync服务: Web服务:  NFS服务 DNS服务 在整体实验中,使客户机在网页可以看到由服务器A上传的文件,并且A服务器有一台备份服务器。 四台虚拟服务器与一台客户机,并关闭防火墙 服务器

    2024年02月03日
    浏览(40)
  • 【Linux】Rsync远程同步及备份工具(Rsync简介、Rsync安装、rsync认证方式)

    rsync(Remote synchronization)是Liunx/Unix下的一个 远程数据同步工具 。 它可通过LAN/WAN(局域网/广域网) 快速同步多台主机间的文件和目录 ,并适当利用rsync算法(差分编码)以减少数据的传输。 rsync算法并不是每一次都整份传输,而是 只传输两个文件的不同部分 ,因此其传输

    2024年02月13日
    浏览(27)
  • 如何在Linux机器上使用ssh远程连接Windows Server服务器并使用rsync同步文件

       当前在研究goploy自动化开源部署工具,该工具部署在linux机器上,而要部署服务的目标服务器有一部分是windows server服务器,goploy自动化部署,使用rsync部署方式,底层依赖于ssh远程连接目标服务器,所以,要实现自动化部署,必须先实现ssh远程连接目标windows server服务器

    2024年02月05日
    浏览(53)
  • 【Linux】企业实战项目rsync+inotify实现实时同步(inotify安装及介绍、rsync + inotify 实现实时同步、rsync + inotify实现开机自启 )

    rsync与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包