linux · 2021年 9月 22日 0

scp_rsync

scp

scp节约资源,系统负荷小,但断点续传是个问题;rsync速度更快,断点续传方便,但系统负荷大,尤其是传输很多文件的时候,硬盘I/O非常高。

scp:scp [OPTION] SRC DEST

常用参数:
-r:递归拷贝目录
-q:不显示进度
-l:限制传输带宽,单位是kbits/s
scp -r -l 200 /home/user/exampledir user@192.168.XXX.XXX:/home/user/

rsync

基本用法

rsync:rsync [OPTION] SRC DEST

常用参数:

--progress:        显示拷贝进度
--partial:        保留不完整文件,实现断点续传
--partial-dir=DIR:指定不完整文件的存储目录,而不是默认存储到目的地目录。
-P:包含--progress和--partial
--rsh=ssh:使用ssh方式传输文件,注意:如果之前设置过ssh免密码登录,那么此时也就不需要密码了,非常方便
-v:显示详细信息
-a:归档模式。也就是以递归方式传输文件,并保持所有文件属性。
-r:递归方式传输文件
-u: 只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时

断点续传

所以,只要我们使用下面的命令传输数据,在断开重连后,再输入同样的命令就可以实现断点续传了:

rsync -P --rsh=ssh yliu@192.168.200.2:/home/yliu/test.mp4 /root

如果 ssh 命令有附加的参数,则必须使用-e参数指定所要执行的 SSH 命令

rsync -avz ccfPrediced910.mat -e "ssh -p 6003" u@139.9.149.252:

快捷方式

  • to server
u@T470:~more .2server.sh    m_data=1
    scp -r "$m_data" ch_cumtlp3@122.207.187.40:
  • to local
u@T470:~more .2local.sh    m_data=1
    scp -r ch_cumtlp3@122.207.187.40:"$m_data" .
TOC