rsync 命令用法详解

栏目: Linux 发布时间:2022-02-09

rsync

rsync 是一个常用的 Linux 应用程序,用于文件同步。优点:增量同步文件。

rsync 安装

如果本地或远程计算机上没有 rsync ,可以自行安装

sudo apt-get install rsync

rsync 使用方法

它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件。也可以当作文件复制工具,替代 cp 命令。

echo hello > a.txt
rsync a.txt b.txt

-r 参数

mkdir -p  a/a1
rsync -r a b

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

rsync -a source/ destination

注意,下属两个命令结果不一样

# 将 source 目录下的内容复制到 destination 目录下
rsync -a source/ destination
# 将整个 source 目录复制到 destination 目录下
rsync -a source destination

-v 参数 -v 参数将同步结果输出到终端,方便查看哪些内容被同步了

rsync -av source/ destination

-z 参数 -z 参数指定同步时压缩数据

-u、--update 参数 -u、--update 表示同步时跳过目标目录中修改时间有更新的文件。

rsync -avu source/ destination

--delete 参数

rsync -av --delete source/ destination

--exclude 参数

rsync -av --exclude=node_modules source/ destination
rsync -av --exclude=*.sh source/ destination

--existing、--ignore-non-existing 参数表示不同步目标目录中不存在的文件和目录。

多个排除

# 方法一
rsync -av --exclude=node_modules --exclude=*.sh source/ destination

# 方法二
rsync -av --exclude={node_modules,*.sh} source/ destination

# 方法三,exclude.list 文件每行指定一个排除规则
rsync -av --exclude-from='exclude.list' source/ destination

同步本地文件到远程服务器

rsync -av a/ app-401:/data/a

同步远程文件到本地

rsync -av app-401:/data/a/ a

与 scp 区别:差异同步,速度更快

scp -r 1029/** app-401:/1029
rsync -av 1029/ app-401:/1029

本文地址:https://www.tides.cn/p_linux-rsync