当前位置: 首页 > news >正文

Linux rsync文件同步工具

scp的不足

1. 性能问题

单线程传输
  • SCP只使用单线程进行传输,这意味着在传输大文件或大量小文件时,其传输速度和效率可能不如其他多线程工具。
无法压缩数据传输
  • SCP不支持内置的压缩机制,这在传输大文件时会导致带宽使用效率较低。

2. 功能有限

缺乏断点续传
  • 如果传输过程中断,SCP没有内置的断点续传功能,需要重新开始传输。
无法同步目录
  • SCP只适用于单次传输,无法像rsync那样进行目录同步。

3. 用户体验问题

交互式密码输入
  • SCP通常需要交互式输入密码,这在自动化脚本中不方便。尽管可以使用SSH密钥认证来解决这个问题,但对于不熟悉密钥管理的用户来说,这增加了复杂性。
缺乏详细的传输信息
  • SCP在传输过程中提供的信息较少,无法实时监控传输进度或速度,用户体验不佳。

4. 兼容性问题

不同平台的实现差异
  • 虽然SCP广泛支持Unix和Linux系统,但在某些平台上(如Windows)可能需要额外的软件(如PuTTY的pscp)来实现SCP功能。

5. 安全性问题

暴露的元数据
  • SCP传输时会暴露文件的元数据(如文件名、路径等),在某些高安全性需求的场景下,这可能是一个问题。

rsync简介

rsync 是一个用于在计算机之间高效地同步文件和目录的开源实用程序。它支持增量传输,只传输修改过的数据,从而节省带宽和时间。

rsync 的主要特点

增量传输
  • 增量传输rsync 只传输自上次同步以来更改的部分数据,大大减少了传输的数据量和时间。
压缩支持
  • 压缩传输:支持在传输过程中压缩数据,进一步减少传输时间和带宽使用。
远程同步
  • 远程同步:可以通过 SSH 等加密通道在远程计算机之间同步文件,确保数据安全。
保留文件属性
  • 保留属性:在同步过程中,可以保留文件的权限、时间戳、符号链接等属性。
灵活的排除和包含
  • 排除/包含规则:可以使用模式来指定要排除或包含的文件和目录。

使用rsync

基本用法:

rsync [选项] 来源 目标

常用选项:
-r:递归处理目录。
-a:归档模式,表示递归传输并保留文件权限、时间戳、符号链接等信息。
-v:详细模式,显示传输过程中的详细信息。
-z:在传输过程中对文件进行压缩。
-P:显示传输进度,并保留部分传输文件以便恢复。
-e:指定远程shell程序(如ssh)。

--delete:删除目标目录中不存在于源目录中的文件。
--exclude:排除指定的文件或目录,不进行同步。
--include:仅同步指定的文件或目录,忽略其他文件。
--bwlimit:限制带宽使用,控制传输速度。

本地同步备份:

[root@localhost ~]# rsync -av source/ Destination/
sending incremental file list
./   
file1
file2sent 176 bytes  received 57 bytes  466.00 bytes/sec
total size is 0  speedup is 0.00
[root@localhost ~]# ll Destination/
total 0
-rw-r--r--. 1 root root 0 Jul 12 20:27 file1
-rw-r--r--. 1 root root 0 Jul 12 20:27 file2

远程同步备份:

将本地文件同步备份到远端服务器;

[root@localhost ~]# rsync source/* root@1.94.13.218:/root/Destination/

将远端服务器文件同步到 本地服务器上;

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 顶顶通呼叫中心中间件-私有化asrproxy配置热词模型
  • 【机器学习】之旅——线性回归
  • React Native
  • 【HTML入门】第十二课 - iframe框架
  • Kubernetes(k8s)和Docker Compose本质区别
  • 暑期oc后必看:一线城市实习,如何攒出一个小金库?
  • OSPF.综合实验
  • 在vue3中,手写父子关联,勾选子级父级关联,取消只取消当前子级,父节点不动
  • nodejs模板引擎(一)
  • react + redux 状态管理操作
  • Kafka基础入门篇(深度好文)
  • 柳永,市井生活的吟游者
  • HDFS体系架构文件写入/下载流程
  • EnableFeignClients详解
  • 函数的形状怎么定义?
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Git 使用集
  • Github访问慢解决办法
  • IDEA 插件开发入门教程
  • js作用域和this的理解
  • python学习笔记 - ThreadLocal
  • react 代码优化(一) ——事件处理
  • Spring Cloud中负载均衡器概览
  • Spring核心 Bean的高级装配
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从零开始的无人驾驶 1
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 算法-插入排序
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 湖北分布式智能数据采集方法有哪些?
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​MySQL主从复制一致性检测
  • #### golang中【堆】的使用及底层 ####
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • $nextTick的使用场景介绍
  • (1)bark-ml
  • (C语言)逆序输出字符串
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .NET Core 项目指定SDK版本
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework杂记
  • .net打印*三角形
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • /etc/motd and /etc/issue
  • [20140403]查询是否产生日志
  • [20180129]bash显示path环境变量.txt
  • [383] 赎金信 js
  • [AAuto]给百宝箱增加娱乐功能