Rsync的一般使用需求

rsync 只同步指定类型的文件

需求: 同步某个目录下所有的图片(*.jpg),该目录下有很多其他的文件,但只想同步*.jpg的文件。

rsync 有一个--exclude 可以排除指定文件,还有个--include选项的作用正好和--exclude相反。
那直接使用--include="*.jpg"是否可以呢?

rsync -av  --include="*.jpg"  /src/   /des/

实验证明,这样是不对的。

而正确的答案是 
rsync -av  --include="*.jpg" --exclude=*  /src/ /des/

rsync 如何在远程自动创建目录

这样就会在  1.1.1.1:/data/目录下创建 1/2/3/这样的级联目录,类似mkdir -prsync  -aR /data/1/2/3/1.txt   1.1.1.1:/data/ 
rsync 有个选项那就是-R 会帮助我们自动创建级联目录。所以,上边的命令应该改成这样
这样,同样也达不到我们想要的效果,这样虽然不再报错,但是这样只是把1.txt放到了 1.1.1.1:/data/目录下。
rsync  -a  /data/1/2/3/1.txt   1.1.1.1:/data/ 
这样会报错的。如果改一改上边的命令
rsync  -a  /data/1/2/3/1.txt   1.1.1.1:/data/1/2/3/1.txt   
默认情况下,使用rsync的时候,不能自动创建级联目录。比如

rsync 根据一个文件列表文档来同步


有时候,有这样的需求,就是根据一个文档中的文件列表来同步文件。举一个例子,1.txt 是文件列表,内容为:
cat  1.txt
/data/a/a.txt
/data/b.txt
/data/c/b/c.txt

那么同步的命令应该是
rsync  -av  --files-from=1.txt  /  ip::module/
需要注意的是, 1.txt 中如果写全局路径,那么source目录需要写/

猜你喜欢

转载自www.cnblogs.com/smilezgy/p/9545498.html