针对实战使用进行讲解分析,不简简单单罗列命令参数了事。
1,构建使用。
静态文件部署,一般会用到此命令,完整命令如下:
rsync -avz --progress -e 'ssh -p 34222' --exclude='Jenkinsfile' --delete ${WORKSPACE}/ root@192.168.0.1:/data/test/
-a
:--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-v
:输出详细过程-z
:对正在备份的文件进行压缩处理-r
:对子目录以递归模式处理-l
:保留软连接-p
:保持文件权限-t
:保持文件时间信息-g
:保持文件属组信息-o
:保持文件属主信息-D
:保持设备文件信息-e
:–rsh=command 指定使用rsh、ssh方式进行数据同步,一般使用sshexclude
: 排除某文件的同步,可以多个。--delete
:删除那些DST中SRC没有的文件。--progress
:显示每个文件传输的进度。知道是否有大型文件正在备份可能是有用的。
2,其他注意。
将dirA的所有文件同步到dirB内,并删除dirB内多余的文件
$ rsync -avz --delete dirA/ dirB/
源目录和目标目录结构一定要一致!!不能是dirA/* dirB/ 或者dirA/ dirB/* 或者 dirA/* dirB/*,如果不遵守,那么就不会删除。
将dirA的所有文件同步到dirB,但是在dirB内除了fileB3.txt这个文件不删之外,其他的都删除
$ rsync -avz --delete --exclude "fileB3.txt" dirA/ dirB/
将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内
将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件
$ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete dirA/ dirB/
将dirA目录内的fileA1.txt和fileA2.txt不同步到dirB目录内,并且在dirB目录内删除多余的文件,同时,如果dirB内有fileA2.txt和fileA1.txt这两个被排除同步的文件,仍然将其删除
$ rsync -avz --exclude="fileA1.txt" --exclude="fileA2.txt" --delete-excluded dirA/ dirB/
版权声明:本文内容来自个人博客:二丫讲梵,遵循CC 4.0 BY-SA版权协议上原文接及本声明。
本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行可。
原文链接:https://wiki.eryajf.net/pages/024c6a/
如有涉及到侵权,请联系,将立即予以删除处理。
在此特别鸣谢原作者:二丫讲梵的创作,Powered by 二丫讲梵。
本文已获原作者授权发布。
此篇文章的所有版权归原作者所有,与本公众号无关,商业转载建议请联系原作者,非商业转载请注明出处。