Linux Tools --- rsync

一、概要

1. 环境

(1) Rocky Linux 9.1

(2) rsync 3.2.7

2. 概念

rsync是一个开源的速度很快的数据传输工具。License是GNU(General Public License)

它具备以下功能和优势:

(1) 在本机和远程主机之间复制或同步文件或目录;

(2) 支持复制Linux 链接(links)、设备(devices)、所有者(Owner)、组(Groups)和权限(Permissions);

(3) 相比scp(Secure Copy),rsync拥有更快的速度,主要是因为rsync仅同步源文件/目录和目标文件/目录不同的部分;

(4) 由于在数据发送端/接收端分别使用压缩和解压技术,rsync消耗较少的带宽。

3. 安装

sudo dnf install rsync -y
或者
sudo yum install rsync -y

二、rsync命令

1. 格式

rsync options source destination

(1) options包含:

-r: 递归地(Recursively)复制数据,数据传输过程中并不保存时间戳和权限;

-a: 归档模式,允许递归拷贝数据的同时保存链接、文件权限、所有者用户和组还有时间戳;

-z: 压缩数据;

-v: 增加输出信息的详细程度;

-h: 使输出信息格式的可读性更好;

-e: 指定需要使用的shell;

--progress: 显示数据传输时的进度;

--include "PATTERN": 传输源文件目录中符合PATTERN要求的文件;

--exclude "PATTERN": 过滤掉原文件目录中不符合PATTERN要求的文件,传输剩余文件;

--delete: 删除目标目录下多余的文件。如果源文件目录中有A,B,C三个文件,目标文件目录中有A,C,D三个文件,该参数将会把目标目录中的D文件删除;

--max-size: 最大文件限制,仅传输文件体量小于或等于该值的文件;

--remove-source-files: 同步之后删除源文件;

--bwlimit=RATE: 限制传输的带宽占用小于等于RATE值;

其他参数参考 rsync

2. 应用(复制/同步)

(1) 本机文件--->本机

rsync -zvh backup.tar.gz /tmp/backups/

复制/同步 backup.tar.gz到/tmp/backups

(2) 本机目录--->本机

rsync -avzh /root/rpmpkgs /tmp/backups/

该命令将会把/root/rpmpkgs目录下所有文件复制到/tem/backups/目录下;

(3) 本机目录--->目标主机

rsync -avzh /root/rpmpkgs root@192.168.0.141:/root/

(4) 目标主机文件--->本机

rsync -avzh root@192.168.0.141:/root/rpmpkgs /tmp/myrpms

(5) SSH 目标主机文件--->本地

rsync -avzhe ssh root@192.168.0.141:/root/anaconda-ks.cfg /tmp

(6) SSH 本地文件--->目标主机

rsync -avzhe ssh backup.tar.gz root@192.168.0.141:/backups/

(7) SSH 本地目录--->目标主机

rsync -avzhe ssh --progress /root/rpmpkgs root@192.168.0.141:/root/rpmpkgs

(8) 指定传输和不传输的文件

rsync -avze ssh --include 'R*' --exclude '*' root@192.168.0.141:/var/lib/rpm/ /root/rpm

该命令将目标主机"/var/lib/rpm/"目录下以R开头的文件复制/同步至本机"/root/rpm"目录;

(9) --delete

touch /root/rpm/test.txt
rsync -avz --delete root@192.168.0.151:/var/lib/rpm/ /root/rpm/

(10) --max-size

rsync -avzhe ssh --max-size='200k' /var/lib/rpm/

(11) --remove-source-files

rsync --remove-source-files -zvh backup.tar.gz

(12) --bwlimit=RATE

rsync --bwlimit=100 -avzhe ssh  /var/lib/rpm/  root@192.168.0.151:/root/tmprpm/

三、参考

1. 官方

https://rsync.samba.org/

https://download.samba.org/pub/rsync/rsync.1

2. 其他

https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/

https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories

https://www.server-world.info/en/note?os=CentOS_Stream_9&p=rsync

https://www.tecmint.com/sync-two-apache-websites-using-rsync/

https://www.tecmint.com/sync-files-using-rsync-with-non-standard-ssh-port/

posted @ 2023-03-16 22:55  白马黑衣  阅读(134)  评论(0编辑  收藏  举报