首页 > 技术文章 > Linux命令rsync使用总结

oboth-zl 2019-01-29 17:58 原文

详细用法见:https://www.cnblogs.com/oboth-zl/articles/10334754.html

rsync命令简介

主要用于数据同步、备份和镜像,除了本地使用之外,也可以通过rsync或者ssh协议进行网络数据同步。

使用总结

常用选项解释

--files-from

指定需要同步的文件。

有如下目录结构:

若我们只想导入1和2两个目录及其里面的内容,我们可以执行

rsync -av rsync/1 rsync/2 rsync-0

可以看到结果符合我们预期。

如用--files-from呢?

rsync -av  --files-from=test.txt  rsync rsync-1

test.txt内容为

1

2

1.txt

执行后的目录结构

结果和我们预期的不一样,只有指定的文件和目录,而没有目录下的其他内容。

所以,--files-from选项只会同步指定的文件和目录,而不会同步目录下的其他内容。

--exclude-from/--include-from

两个选项含义相同,互相可作替换。用来指定包含或者不包含的文件。

基本格式:

+/include file

-/exclude file

/ 在名字前表根目录

/ 在后表目

默认包含所有文件和目录,所以 + 单独使用无意义,常和 - 搭配使用。

比如

cat > rule.txt << EOF
+ Desktop/
+ Desktop/*
+ .bashrc
+ .cshrc
+ /*
- *
EOF

rsync -av --exclude-from=rule.txt root rsync_dir

此规则表示仅同步Desktop及其下级目录和文件,以及.bashrc、.cshrc。并不会同步Desktop/*/再下一级目录,这里需要注意。并且若注释掉 /* 则不会同步任何数据。

而当规则换成这样

cat > rule.txt << EOF
+ /root/Desktop/
+ /root/Desktop/*
+ /root/.bashrc
+ /root/.cshrc
+ /*
- *
EOF

结果和上面一样。

推荐阅读