scp和rsync的区别

在linux下,我们经常需要两台机器之间拷贝文件,或者由于业务需要备份文件,那就不得不用到scp和rsync两个命令。

1.scp

cp 在本机复制文件,这个命令我们经常使用,但是跨机器复制cp就不行了,scp可以跨机器复制文件,示例:

scp -Crvp  -l 1 test/ [email protected]:/usr/local
##                    test/ 源文件   [email protected]:/usr/local 目标地址

参数解释:
-C(大写): 允许传输过程中压缩,可提高效率
-r: 递归传输整个目录 (如果传输的是文件则不需要整个参数)
-p: 保留源文件的修改时间和访问权限等
-l: limit限制传输带宽 kb/s,(-l 1)表示限制每秒1kb的传输效率
-v: 传输详情 (调试可以使用)

2.rsync

rsync命令也可以实现跨机器复制,既然都有了scp,我们还需要用到rsync吗?当然有应用场景:
1.增量备份
2.在拷贝目录时,排除掉目录中的某些文件
这两个场景scp满足不了
示例:

rsync -arz --exclude 'logs' --bwlimit=1 test/ [email protected]:/usr/local/test

参数解释:
-r : 递归传输目录下所有文件
-a : 归档模式,保持所有文件属性
-z : 传输进行压缩处理
–exclude=PATTERN 指定排除不需要传输的文件模式
–exclude-from=FILE 排除FILE中指定模式的文件
–bwlimit :限制I/O带宽 KB/s

区别

rsync默认是只拷贝有变动的文件,scp是全量拷贝,所有rsync很适合做增量备份。
scp是加密传输,rsync不是。

注意:我们在做备份的时候,最好限制一下I/O带宽,不然很容易因为备份占用了太多的I/0,影响机器其它的应用程序

转自:https://blog.csdn.net/qq_32314335/article/details/105860603
谢谢博主!

你可能感兴趣的:(Hadoop,rsync)