服务器之间的数据传输(scp&rsync)

1. 本地终端与服务器互传数据(都在本地终端操作)

1.1 从本地终端上传数据到服务器:

scp -P 具体端口号 -r 本地终端数据路径 用户名@服务器地址:服务器数据保存路径

其中,-P表示指定端口号(注意P为大写),-r表示递归传输,下同。

1.2 从服务器下载数据到本地:

scp -P 具体端口号 -r 用户名@服务器地址:服务器数据保存路径 本地终端数据路径

其实上面并不是本文的重点,本文重点是如何不覆盖传输,即针对已存在的数据,直接跳过。

2. 不覆盖传输

rsync -avzu -e 'ssh -p 具体端口号' --progress 本地服务器数据地址用户名@服务器地址:远端服务器数据地址

-avzu中的u选项,指定不覆盖原目录内容;
–progress可以查看拷贝的过程;
‘ssh -p 具体端口号’,指定端口号;

2.1 可能存在的问题

2.1.1

针对机器中不存在rsync指令的问题,可执行以下命令:

apt-get install rsync -y

2.1.2

传送跟接收两台服务器都必须有rsync指令,如果存在以下错误:

bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

即说明接受数据的服务器缺少rsync模块,同样在该服务器执行2.1.1的语句进行安装即可。

参考:linux远程scp,但是不覆盖已经存在文件的方法
rsync同步文件如何指定服务器端口
【Linux】rsync error: remote command not found (code 127) at io.c(226) [sender=3.1.2]

猜你喜欢

转载自blog.csdn.net/Flying_sfeng/article/details/106147641