文件夹同步:rsync 命令详解

Published on 2024-06-24 14:15 in 分类: 随笔 with 狂盗一枝梅
分类: 随笔

一、rsync命令简介

rsync(remote synchronized) 是一个常用的 Linux 应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。

rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动),也就是说,它实际上是“增量同步”的

rsync需要同步的两台计算机都安装rsync,安装命令

yum install rsync

二、rsync用法

rsync options source target

举例用法:

rsync --password-file=/root/data-backup/rsync.pass -avzh --delete /root/data-backup/ root@192.168.3.12::data/backup

上面这是将本地的/root/data-backup/ 文件夹同步到远端的 data/backup 文件夹的命令。

1、-r

-r表示递归,即包含子目录。注意,-r是必须的,否则 rsync 运行不会成功。

如果有多个文件或目录需要同步,可以写成下面这样。

rsync -r source1 source2 target

2、-a

-a参数可以替代-r,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新,所以-a-r更有用。下面的用法才是常见的写法。

rsync -a source target

注意命令rsync -a source targetrsync -a source/ target 是不同的,前者是复制source文件夹本身到target目录,最后形成的目录结构是 target/source;而后者则是将source文件夹中的所有文件复制到了target目录。

3、-v

也就是--verbose,在传输的过程中展示冗余信息到屏幕上,也就是“传输细节”

4、-z

也就是 --compress,将数据压缩后传输,可以减小带宽压力。

5、-h

也就是--human-readable使用人类可读的方式展示文件信息。很多命令是相通的,比如ll -h 命令可以展示文件的大小信息自动显示为MB或者GB信息。

6、--delete

该命令会比较本地和远端的文件,删除在本地不存在的远端文件,这样可以确保远端的文件夹内容是本地的镜像。

7、--password-file

默认rsync命令每次执行的时候都需要输入密码,为了解决这个问题,可以新建个文件rsync.pass,将密码贴进去,然后使用命令chmod 600 rsync.pass 设置下文件权限,然后在执行命令的时候这样设置

--password-file rsync.pass

就可以避免手动输入密码了。

更多命令可以在linux控制台输入rsync 命令查看。

三、参考文档

https://www.ruanyifeng.com/blog/2020/08/rsync.html

https://blog.csdn.net/weixin_44052462/article/details/120523600


#linux
目录