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]