linux系统中rsync是什么(Linux高性能文件传输rsync命令)

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/

linux系统中rsync是什么(Linux高性能文件传输rsync命令)(1)

远程传输文件

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

rsync -avzh bb root@172.17.70.3:/opt/

linux系统中rsync是什么(Linux高性能文件传输rsync命令)(2)

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

如果你在传输的时候需要哪些文件或者不需要哪些文件可以根据--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/

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页