Linux 工具 | rsync

rsync 是非常常用的文件同步工具

既可以同步本地数据,类似于 cp。又可以同步远程数据,类似于 scp

rsync 不会复制全部文件,而是采取增量备份,只复制有改动的文件,速度很快

rsync 算法中判断文件改动的默认规则是,文件大小或文件修改时间


同步本地文件

最基础的用法

rsync -auv /dir1/file1 /dir2/file2

上面的命令可以把 dir1 目录下的 file1 文件,同步到 dir2 目录下,且文件名为 file2

其中用到的三个参数也是最基础的参数

  • -a 表示递归传输文件,并且保持所有属性

  • -u 表示排除目标文件比源文件更新的文件,不进行覆盖

  • -v 表示打印传输过程的信息

目标文件或目录不存在时,会自动创建

运行 rsync 命令的用户需对源目录有读取权限,对目标目录有写入权限


同步多个目录或文件,则分别列出源文件或目录

rsync -auv /dir1/ /dir2/ /dir3

上面的命令把 dir1 目录和 dir2 目录下的内容都拷贝到 dir3 目录下

注意源目录后面的斜线,如果不加,则拷贝后生成 /dir3/dir1 和 /dir3/dir2 结构


要让目标目录成为源目录的镜像副本,则用 --delete 参数

rsync -auv --delete /dir1/ /dir2

通常情况下,会把源目录的所有改动文件都拷贝到目标目录,但是只在目标目录中存在的文件不会被删除

要想目标目录内容和源目录完全一致,要加上 --delete 参数,来删除不要的文件


有时拷贝时需要排除一些文件或目录,要用--exclude 参数

rsync -auv --exclude '/back/*' --delete /dir1/ /dir2

将 dir1 目录下的内容拷贝到 dir2 目录,并且排除掉 dir1 目录下的 back 目录内容

排除多个目录及文件时,可以使用多个 --exclude 参数,或者用大括号扩展,还可以引用文件

rsync -auv --exclude '/back/*' --exclude '*.log' --delete /dir1/ /dir2

或者

rsync -auv --exclude={'/back/*', '*.log'} --delete /dir1/ /dir2

或者

rsync -auv --exclude-from='ignore.txt' --delete /dir1/ /dir2

在 ignore.txt 文件中,列出所有要排除的模式,一行一个


有时可以结合 --include 参数,更方便的排除和指定要拷贝的内容

rsync -auv --exclude '*.log' --include 'nginx-*.log' --delete /dir1/ /dir2

上面的命令表示排除掉除了 nginx 以外的 log 文件

同理,也可以用 --include-from='include.txt' 引入文件的方式


有时需要定期更新文件,且每次都放在同一个目录,用 --inplace 参数

rsync -auv --inplace --delete /dir1/ /dir2

当 dir2 目录已经存在时,就地更新 dir2 目录内容


如果想模拟测试一下执行结果,则用-n参数

rsync -anv /dir1/ /dir2

通过 -v 参数把信息打印到终端,查看模拟结果


如果同步后需要删除源目录,用 --remove-source-files 参数

rsync -auv /dir1/ /dir2 --remove-source-files

把 dir1 目录的内容拷贝到 dir2 目录后,删除 dir1 目录内容

linux 系统没有垃圾箱,删除内容需谨慎!!!!!!!!!!!!!!!!!!



同步远程文件

rsync 中的 r 是 remote,命令本身就是远程同步的意思

默认 ssh 协议,支持从本地同步到远程,或者从远程同步到本地

本地到远程 ↓

rsync -auv /dir1/ owner@host:/dir2

远程到本地 ↓

rsync -auv owner@host:/dir1/ /dir2

当 ssh 使用了非默认值时,用 -e 参数指定

rsync -auv -e 'ssh -p 1022' /dir1/ owner@host:/dir2


rsync 命令还有很多可用参数,可以用 rsync -h 查看全部参数及解释

rsync 远程同步文件时,除了 ssh 协议外,还可以用 rsync 协议,用到后再补充

posted @ 2023-05-06 17:59  菜乌  阅读(159)  评论(0编辑  收藏  举报