2020年10月26日 / 30次阅读
Linux命令
相对于scp命令,在主机之间copy文件,rsync更好用。它可以支持断点续传,就这一点就足够吸引人了。rsync从名称来看,就是为了同步文件(档案)设计的。就像那些网盘客户端的同步功能,如果有自己的云服务器,用这个命令同步,相当惬意。
更所有其他Linux命令一样,rsync的参数也是超级多,只能举例说明,一边用一边学:
$ rsync -azP --bwlimit=64 -e 'ssh -p xxxx -l name' maixj.net:~/dbs .
这条命令的作用,sync maixj.net:~/dbs整个目录到当前路径!
rsync [OTPTIONS] source destination
-a:archive模式,这一个a,相当于好多参数的合体,-rlptgoD (no -H,-A,-X);
-z:压缩传输;
-P:大写,开启断点续传,同时显示进度,即 -p --progress;
-p:断点续传;
--progress:显示进度;
-e:指示rsync用ssh登录,给出port和username;
--bwlimit:显示带宽,默认单位是KB;
-v:verbose;
-r:recursive;
-l:copy symlinks as symlinks;
-t:preserve mtime;
--exclude=PATTERN,排除项,下面详细介绍一下这个参数:
一下是我个人测试的结果:
这个PATTERN是glob,不是re。
--exclude='cache/',排除路径中所有的cache目录;(不能写成 'cache',含义不同)
--exclude='cache',排除路径中所有cache目录,或以cache为名称的文件;
--exclude='cache*',排除cache开头的文件和目录;
--exclude='/cache',排除第1层路径中的cache(目录或文件);
--exclude='*/cache',排除第2层路径以及后面的路径中的所有cache(目录或文件)
--exclude='cache/*',排除cache目录中的所有文件,但是保留cache这个目录;
注意路径匹配的范围,从source开始:
rsync在copy文件的时候,有一个行为跟cp和scp不一样,源写成 source 和 source/ 表示的含义是不一样的;
rsync -r source d # 得到的结果是 d 中 包含 整个source目录, d/source/...
rsync -r source/ d # 得到的结果是d中包含全部source的内容,d/...... ,(cp 和 scp只有这一种情况!)
因此写成source和source/,对pattern的解释是不同的。
写成 source,pattern的匹配从source开始;
写成 source/,pattern的匹配从 /..... 开始;
要精确控制 --exclude 的内容,就要好好体会这些规则,并做好测试。
命令行中可以同时存在多个--exclude参数,即同时排除多个项目。
本文链接:https://www.maixj.net/ict/rsync-24090
《rsync命令》有3条留言
前一篇:哪种网线最适合POE供电?
后一篇:sftp命令
-->只要几分钟回答问卷,就能轻松赚现金!
©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1。云上小悟网站部分内容来源于网络,转载目的是为了整合信息,收藏学习,服务大家,有些转载内容也难以判断是否有侵权问题,如果侵犯了您的权益,请及时联系站长,我会立即删除。
rsync对变化的文件,直接update。 [ ]
在同步远端文件时,如果远端删除了某些文件,本地不会同步删除! [ ]
rsync -aztP --bwlimit=128 --exclude='*/cache' -e 'ssh -l your_name -p 12345' pynote.net:~/pynote.net . [ ]