rsync 命令
简单命令
rsync -avzP /tmp/test/ /tmp/test1 --exclude="/cptest"
复制/tmp/test/下面的文件到/tmp/test1,排除/tmp/test/cptest
注意同步目录时末尾有无“/”,差别较大(有“/”代表传输目录下的文件;无“/”代表传输目录)
将自己的/root/python目录的所有文件(不包括目录)都同步传输到服务器IP为123.121.123.123,用户为root的服务器的/root/python目录(有此目录时)下
rsync -aP /root/python/ root@123.121.123.123:/root/python
远程主机的python目录结构为 /root/python
如果想要避开复制的文件过多,可以这么写
–exclude-from=/exclude.list
exclude.list 是一个文件,放置的位置是绝对路径的/exclude.list ,为了避免出问题,最好设置为绝对路径。
里面的内容一定要写为相对路径
比如 我想避开checkout文件夹和fire打头的文件
那么/exclude.list 写为
checkout
fire*
排除checkout和fire*
rsync 常用参数:
-a, --archive 归档模式,等于-rlptgoD; #最常用的 一般直接 -avzP
-r, --recursive 递归模式;
-l 保持符号连接;
-p 保持文件原有权限;
-t 保持文件原有修改时间;
-g 保持文件原有用户组;
-o 保持文件原有属主;
-D -devices -specials,保持块设备文件和特殊文件;
-I 强制扫描,放弃“quick check”策略(quick check策略,通过查看文件的时间戳和文件大小,先排除一批认为相同的文件[rsync不会对文件夹本身做“quick check”]);
-z, --compress 压缩,默认的压缩算法和gzip一样;
-v, --verbose 显示进度详细信息;
-q, --quiet 精简输出模式;
-R, --relative 保持全路径;
--progress 显示传输进度(百分百); 等同于 -P
--delete 本地删除某一文件,远程也同步的删除该文件,保持严格的一致(不加该参数,则表示只增不减);
--exclude="*.tmp" 排除某些文件;
--exclude-from=FILE 排除FILE中指定模式的文件;
--port=PORT 指定其他的rsync服务端口;