rsync命令介绍与使用案例

news2024/12/22 18:12:19

一、rsync命令简介

        Rsync命令是一个常用的用于文件传输和同步的工具,rsync 可以理解为 remote sync(远程同步),为了减少网络数据发送量,只发送源文件和目标文件之间的差异信息,从而实现数据的增量的复制。它不仅可以远程同步数据(类似于 scp 命令),还可以本地同步数据(类似于 cp 命令)。不同于 cp 或 scp 的一点是,使用 rsync 命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。以下是一个简单的rsync命令示例:

        将本地文件复制到远程服务器:

                rsync -avz /本地路径/ 用户名@远程服务器IP地址:/远程路径/

注意:使用rsync进行远程文件传输,源端和目标端必须都装有rsync。

rsync优点:

    • 增量备份,支持socket(daemon),集中备份(支持推位,都是以客户端为参照物)。
    • 远程shell通道模式还可以加密(SSH)传输,socket(daemon)需要加密传输,可以利用vpn服务或ipsecc服务。

rsync缺点:

    • 大量文件时候同步的时候,比对时间较长,有时候,rsync进程可能会停止。
    • 同步大文件,100G这样的大文件也会有问题,中断。未完整同步前,是隐藏文件,可以通过续传等参数实现传输。一次性远程拷贝可以用scp。

二、rsync三种传输模式

1.本地数据传输模式        

        rsync的本地数据传输模式,很类似于cp本地复制命令,可以实现文件目录移动备份等功能,多有不同的是rsync有增量复制的功能。

2.远程shell数据传输模式

        rsync远程shell数据传输模式一般是借助通道(如SSH)在两台服务器之间进行复制数据,这两台服务器之间是对等的,没有客户端与服务端之分,整个过程类似于SCP远程复制命令,所不同的是Rsync有增量复制的功能,但缺少scp的加密复制的功能。

3.守护进程传输模式

        守护进程传输模式是在客户端和服务端之间进行数据复制的,通常需要服务端部署守护进程服务,然后再客户端执行命令,实现数据的拉取和推送复制。守护进程的默认端口是837

#本地模式
   Local:  rsync [OPTION...] SRC... [DEST]
   #通过远程shell数据传输模式
   Access via remote shell:
     Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]    #从远端拉到本地
     Push: rsync [OPTION...] SRC... [USER@]HOST:DEST      #从本地推到远端
    #通过rsync守护进程模式
   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
    #如果只有源文件参数,没有目的文件参数,则只是显示源文件列表
   Usages with just one SRC arg and no DEST arg will list the source files instead of copying.

三、rsync命令的使用

        The ':' usages connect via remote shell, while '::' & 'rsync://' usages connect to an rsync daemon, and require SRC or DEST to start with a module name.

        在 rsync 命令中,如果使用单个冒号(:),则默认使用 ssh 协议;反之,如果使用两个冒号(::)或‘rsync://’,则使用 rsync 协议。使用 rsync 在远程传输数据(备份数据)前,是需要进行登陆认证的,这个过程需要借助 ssh 协议或者 rsync 协议才能完成。

        ssh 协议和 rsync 协议的区别在于,rsync 协议在使用时需要额外配置,增加了工作量,但优势是更加安全;反之,ssh 协议使用方便,无需进行配置,但有泄漏服务器密码的风险。

OPTION 参数

-v 观察模式,输出更多资讯

-q 与 –v 相反,仅显示错误信息

-u 仅更新较新的文件

-n 假运行,不实际传输文件

-l, --links 软链接同步,指定的内容不一定有效

-L, --copy-links 将软链接转换为普通文件,实际内容放入文件中

-r 递归复制,针对目录

-p 复制时保持属性不变

-t 保存原有时间属性

-g 保存原有群组

-o 保存原有拥有人

-D 保存原有设备属性

-a 归档模式,相对于-rlptgoD,所以-a最常用

-z 在传输时压缩,节省带宽,加快传输速度

-P ,--progress显示传输进度

-e 使用协议通道,例如ssh,-e ssh

--delete 删除那些DST中SRC没有的文件

如上图所示:

        -a 是归档传输,-z 是压缩传输,-v 是显示传输详情

        另外源地址末尾不加'/'是传输整个目录到目标端,有'/'是指文件夹中的内容传输到目标端。

        rsync -av /src/foo /dest

        rsync -av /src/foo/ /dest/foo

        以上命令效果一样

如上图,软链接传输过来还是软链接文件,但内容不一定有效

        -P 显示传输进度

        远程shell传输模式,-e 可以指定ssh协议,并制定端口

四、使用守护进程模式

        1、首先选一台主机作为启动守护进程的主机,如A主机,在A主机上编辑配置文件;

        vim /etc/rsyncd.conf

# /etc/rsyncd: configuration file for rsync daemon mode

# See rsyncd.conf man page for more options.

# configuration example:

# uid = nobody
# gid = nobody
# use chroot = yes
# max connections = 4
# pid file = /var/run/rsyncd.pid
# exclude = lost+found/
# transfer logging = yes
# timeout = 900
# ignore nonreadable = yes
# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2

# [ftp]
#        path = /home/ftp
#        comment = ftp export area
uid=nobody
gid=nobody
max connections=4
use chroot = no
pid file=/var/run.rsyncd.pid
transfer logging=yes
#模块名
[app]
path=/home/rsync
comment=test
ignore errors
read only=yes
list=yes
# 认证授权
#auth users=app
#secrets file=/etc/rsyncd.secrets

        在A主机上启动守护进程:rsync --daemon

2、在B主机上传输文件,以下是从源端拉取到本地。两种方式,注意区别。

3、认证授权功能

        在配置文件中配置授权用户及密码文件路径。

        注:

                1、服务端的密码文件格式是账号:密码,比如:rsync:123456

                2、密码文件权限必须是600:chmod /etc/rsyncd.secrets

                3、使用什么用户启动守护进程,密码文件的属主也应该是该用户

        客户端指定密码文件

                rsync -azv app@192.168.203.131::app --password-file=/home/rsyncd.secrets

                1、客户端的密码文件权限必须为600,即:chmod 600 /home/rsyncd.secrets

                2、密码文件中直接输入密码,如:123456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954894.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DP3232 国产RS-232接口收发器芯片

DP3232是一个3.3 V.供电的 EIA/TIA-232和 V.28/V.24通信接口,具有低功耗要求、高数据速率能力。DP3232拥有一个专有的低压差发射机输出平台,提供真正的 RS-232性能,从3.3 vV 到5.5 V 电源。该设备只需要四个小的0.1 μF 标准外部电容器从3.3 …

原生小程序 wxs 语法(详细)

WXS WXS(WeiXin Script)是内联在 WXML 中的脚本段。通过 WXS 可以在模版中内联少量处理脚本,丰富模板的数据预处理能力。另外, WXS 还可以用来编写简单的 WXS 事件响应函数。 从语法上看, WXS 类似于有少量限制的 Java…

LOIC(low orbit ion cannon)

前言 重要的话说三遍: 该程序仅用于学习用途,请勿用于非法行为上!!! 该程序仅用于学习用途,请勿用于非法行为上!!! 该程序仅用于学习用途,请勿用于非法行为上…

麒麟系统查看飞腾CPU的工作模式、实时频率的方法

CPU动态节能技术用于降低功耗,通过选择系统空闲状态不同的电源管理策略,可以实现不同程度降低CPU功耗,更低的功耗策略意味着CPU唤醒更慢对性能影响更大。本文这里讲解了如何使用命令查看系统下CPU的工作模式,和实时频率。 测试用系统信息: # cat /etc/os-releaseNAME=&qu…

com.google.guava:guava 组件安全漏洞及健康分析

组件简介 维护者google组织许可证类型Apache-2.0首次发布2010 年 4 月 26 日最新发布时间2023 年 8 月 1 日GitHub Star48189GitHub Fork10716依赖包28,694依赖存储库219,576 Guava 是 Google 的一组核心 Java 库,其中包括新的集合类型(例如 multimap 和…

《自然》杂志最新研究成果,新冠卷土重来,仍然凶险,别不当回事儿

我同事又带口罩了,他说已阳。我很奇怪怎么不认为是感冒呢? 他低声地说,家里还有去年囤的试剂盒,我测了一个。 我还好,只在年初时候阳过一次。 应该说,我们比较庆幸,新冠毒株已经温和&#xff0c…

linux服务磁盘满了操作

1、使用xshell连接上服务器 2、# df -h 查看系统磁盘使用情况 3、查看使用比较多的文件,cd 跳转到该文件夹下,ls 查看文件 # du -h查看该文件夹下各个文件大小 4、查找logs文件 ,删除logs 文件内容 使用 删除名为directory下的所有文件…

杭州华宫养老服务有限公司官网上线 | LTD养老服务行业案例分享

数字化时代,养老服务行业也逐渐的意识到借助互联网进行营销的重要性,但是,随着互联网渠道成本的不断攀升,如何获取稳定流量成为养老服务机构目前所面临的重要挑战。 于是,杭州华宫养老服务有限公司作为养老服务行业崛…

深圳产品展示视频拍摄一站式服务

产品展示视频拍摄一站式服务是指一家专业的拍摄制作公司或团队提供从策划、拍摄到后期制作的全方位服务,以满足客户的产品展示需求。这种服务通常包括以下方面,由产品展示视频制作公司老友记小编从以下几个方面为您整理: 1.策划和预制阶段&a…

黑客组织“Anonymous”进行网络攻击抗议日本排放核污水

概述 近期全球都在关注日本核污水排放,起因是日本政府宣布,福岛第一核电站核污染水8月24日开始排入海洋,计划排放30年。那么这件事为什么会引起全球关注呢,大家通过美国对日本投放原子弹后果,导致广岛长崎任然处于核辐…

Java SPI 机制

文章首发于个人博客,欢迎访问关注:https://www.lin2j.tech 什么是 SPI 机制 SPI (Service Provider Interface)是 Java 内置的一种服务提供发现机制,将功能的实现交给第三方,用来拓展和替换组件。 SPI 的…

ESB(Enterprise Service Bus,即企业服务总线)

以前用过部分功能,但是没有很好地去理解过。 ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。 企业服…

【Bug】Ubuntu 有线设置打不开无反应

前言: 突然有线设置就没法启用了,但是能联网,能查看ip 解决: 最后安装了一个新的依赖包: sudo apt install gnome-control-center 然后就可以了 还有一个方法,没试过,但感觉有点道理的&#…

《向量数据库》——为何向量数据库对大模型LLM很重要?

当您浏览Twitter、LinkedIn或新闻源上的时间轴时,可能会看到一些关于聊天机器人、LLM和GPT的内容。因为每周都有新的LLM发布,很多人都在谈论LLM。 我们目前置身于一场人工智能革命,许多新应用都依赖于向量嵌入。不妨让我们更多地了解向量数据库以及为什么它们对LLM很重要。…

【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】

一、今天我们来学习三个东西 1.UIPickerView-UIDatePicker-应用程序对象 1.首先,来看数据选择控件 数据选择控件, 大家对这个数据选择控件,是怎么理解的, 1)数据选择控件,首先,是不是得有数据, 2)然后呢,你还得让用户能够选择, 3)最后,你还得是一个控件儿 那…

MySQL 数据库常用命令大全(详细)

文章目录 1. MySQL命令2. MySQL基础命令3. MySQL命令简介4. MySQL常用命令4.1 MySQL准备篇4.1.1 启动和停止MySQL服务4.1.2 修改MySQL账户密码4.1.3 MySQL的登陆和退出4.1.4 查看MySQL版本 4.2 DDL篇(数据定义)4.2.1 查询数据库4.2.2 创建数据库4.2.3 使…

Python UDP编程

前面我们讲了 TCP 编程,我们知道 TCP 可以建立可靠连接,并且通信双方都可以以流的形式发送数据。本文我们再来介绍另一个常用的协议--UDP。相对TCP,UDP则是面向无连接的协议。 UDP 协议 我们来看 UDP 的定义: UDP 协议&#xff…

ABB PCD231B101励磁控制模块

电磁励磁控制: PCD231B101 模块专门设计用于电磁励磁设备的控制,以确保发电机的励磁电流和电压维持在合适的水平。 多通道控制: 这种模块通常具有多个控制通道,可用于同时监测和控制多台电力发电机。 通讯接口: PCD2…

AI机器视觉赋能电池缺陷检测,深眸科技助力新能源行业规模化发展

新产业周期下,新能源行业风口已至,现代社会对于新能源电池产品需求量加大,对产品的质量安全也更加重视。当前,传统的检测方法已经不能满足新能源电池行业的发展,越来越多的厂商开始应用创新机器视觉技术与产品于生产环…

受老板器重的项目经理都是这样工作的

大家好,我是老原。 当了领导才明白,那些优秀的人都一个样。 “平庸的人各有各的平庸,优秀的人基本都一样” 作为普通员工,身边的内卷的、单纯的、摸鱼的、斤斤计较的、慷慨无私的……各种各样的都有,有时候聚在一起…