百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux高性能文件传输rsync命令(linux 文件传输协议)

sinye56 2024-11-16 00:25 4 浏览 0 评论

rsync(远程同步,Remote Sync)是一种在系统中或两个系统之间复制文件和目录的同步工具。rsync 的一个最大的优点,就是它只复制更改的文件,因而可以减少 CPU 消耗,传输效率更高,在复制文件时节省带宽和时间,如果是大批量文件传输建议使用rsync命令。

scp和rsync命令区别:

  1. scp 基于ssh协议传输更安全
  2. scp又称为全量复制,每次复制都会复制所有文件。
  3. rsync 第一次是把所有文件同步过去,当文件修改后,只把修改的文件同步过去

在 Ubuntu 和 Debian 安装,如果redhat红帽系统只需要把apt修改成yum即可

apt install rsync

rsync 全部参数

-v --verbose 详细模式输出
-q --quiet 精简输出模式
-c --checksum 打开校验开关,强制对文件传输进行校验
-a --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于 -rlptgoD
-r --recursive 对子目录以递归模式处理
-R --relative 使用相对路径信息
-H, --hard-links 保留硬链结
-p, --perms 保持文件权
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省 DST 的空间
-n, --dry-run 现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是 700 字节
--delete 删除那些 DST 中 SRC 没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现 IO 错误也进行删除
--max-delete=NUM 最多删除 NUM 个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组 ID 匹配为用户名和组名
--timeout=TIME IP 超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为 0
-T --temp-dir=DIR 在 DIR 中创建临时文件
--compare-dest=DIR 同样比较 DIR 中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除 FILE 中指定模式的文件
--include-from=FILE 不排除 FILE 指定模式匹配的文件
--version 打印版本信息


本地文件同步

例如:同步aa文件下面的文件到bb文件夹,默认是单向同步,如果需要双向同步添加 --delete参数

rsync -avzh aa/ bb/


远程传输文件

例如:需要把bb目录复制到某一台服务器的/opt目录,想要注意一点??bb加/表示只同步bb目录下的我就,不加表示同步bb整合目录包含bb夹,下面的截图可以看出两个的区别。

rsync -avzh bb root@172.17.70.3:/opt/


包含和排除需要传输的文件

如果你在传输的时候需要哪些文件或者不需要哪些文件可以根据--include 或者 --exclude参数,如果只想要.java文件不想要 .class文件可以使用下面命令

rsync -avzh bb root@172.17.70.3:/opt/ --incloud=*.java  --exclude=*.class

断点续传

如果文件传输不完整,可以使用 rsync 命令保留不完整的下载,以便在下一次发出相同命令时继续传输。

要恢复传输,使用 --append 选项:

rsync -avzh  --append bb root@172.17.70.3:/opt/ --incloud=*.java  --exclude=*.class

rsync 使用非标准端口

比如现在向机器127.0.0.8传送文件,但此时yunst的 ssh 端口已经不是默认的 22 端口

rsync -avz -e "ssh -p $port" /opt/src/ root@127.0.0.8:/opt/

相关推荐

Linux两种光驱自动挂载的方法

环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...

linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握

虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...

Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)

mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...

在Linux中如何设置自动挂载特定文件系统(示例)

Linux...

Linux环境中的绑定挂载(bind mount)

简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...

Linux挂载CIFS共享 临时挂载 1. 首先

如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...

Linux 硬盘挂载(服务器重启自动挂载)

1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...

linux 挂载磁盘

在Linux中挂载硬盘的步骤如下:...

笨小猪教您Linux磁盘挂载

本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...

Linux 磁盘挂载和docker安装命令

本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...

Linux设置开机自动挂载分区

有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...

在linux挂载一个新硬盘的完整步骤

以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...

Linux系统如何挂载exFAT分区

简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...

Linux系统挂载硬盘

fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...

WSL2发布,如何在Win10中挂载Linux文件系统

WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...

取消回复欢迎 发表评论: