cp、scp、rsync之间的区别
cp用于在本机复制文件 scp可以跨机器复制文件,全量拷贝,scp传输是加密的,安全传输,不过会影响速度 rsync有scp所不具备的功能:增量备份、支持排除某些文件,支持断点续传(如果要传输大文件,并且传输在完成之前断开连接,rsync会从中断的位置继续传输)
scp
scp语法
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
常用的参数
-C:压缩启用。将-C标志传递给ssh以启用压缩。 -p:保留原始文件的修改时间、访问时间和模式。 -P port:指定远程主机上要连接的端口。请注意,这个选项是用大写字母“P”写的,因为-p已经被保留用于保存文件的时间和模式。 -r:递归复制整个目录。请注意,scp遵循在树遍历中遇到的符号链接。 -v:详细模式。使scp和ssh打印有关其进度的调试消息。这有助于调试连接、身份验证和配置问题。
常见用法:
本地传输到目标服务器
scp -Cpr -P1022 file1 file2 user@host:~/
拉取目标服务器文件到本地
scp -Cpr -P1022 user@host:~/file ~/
rsync
rsync语法
rsync [OPTION...] SRC... [DEST]
常用参数
–delete:删除那些目标目录中有而源目录中没有的多余文件。 –exclude:指定同步时需要过滤掉的文件或子目录(即不需要同步过去的),后面直接跟不需要同步的单个文件名或子目录(不需要跟路径) 必须为相对路径才可以,否则出错。过滤多个文件或子目录,就使用多个–exclude。 -e, --rsh=COMMAND:指定要使用的远程shell。 -v, --verbose:详细模式输出。 -a, --archive:归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。 -r, --recursive:对子目录以递归模式处理。同步目录的时候必须要加上此参数。 -l, --links:保留软链结,加上这个参数,同步过来的文件会保持之前的软链接属性不变。 -p, --perms:保留权限。 -t, --times:保留修改时间。 -g, --group:保持文件属组信息。 -o, --owner:保持文件属主信息。 -D:等价于–devices --specials两个参数作用。
示例
rsync -av -e 'ssh' --delete --exclude="wp?" --exclude="20220420*" --exclude="*sdf" /root/data/ root@192.168.10.5:/root/data/ >> ck_log 2>> ck_err.log
注意:–exclude后面直接跟不需要同步的单个文件名或子目录(不需要跟路径) 必须为相对路径才可以,否则出错。
rsync测试结论
如果一个文件,主机A有,主机B没有,rsync同步主机A的文件到主机B时,将会增加 如果一个文件,主机A没有,主机B有,rsync同步主机A的文件到主机B时,无任何变化 如果一个文件,主机A和主机B同时有(无论两边的内容是否相同),rsync同步主机A的文件到主机B时,则会替换主机B的原有文件
|