方案一:通过rsync命令传输
#将当前服务器的work1文件夹传输到IP为192.168.33.10的主机home文件夹下
shell1 > rsync -ravz /home/work1 192.168.33.20:/home
#这样传输几百个G的文件与终端的连接无法保证断开,所以建议nohup运行
#如果实施nohup则涉及一个自动登录问题,所以应该将当前主机公钥添加至接收端主机authorized_keys自动认证文件里
#这里举例发送端是 shell1,接收端是 shell2
#生成秘钥
shell1 > ssh-keygen
#下载公钥
shell1 > sz /root/.ssh/id_rsa.pub
#上传公钥至接收端服务器
shell2 > rz
shell2 > cat id_rsa.pub >> /root/.ssh/authorized_keys
#在发送端主机进行连接测试
shell1 > ssh [email protected]
#nohup运行文件推送
shell1 > nohup rsync -ravz /home/work1 192.168.33.20:/home &
#退出当前连接(注意:千万不要点击连接工具右上角X退出,会导致nohup也退出!)
shell1 > exit
方案二:通过UDP传输
#这里举例发送端是 shell1,接收端是 shell2
# 安装所需软件
shell1 > yum install epel-release
shell1 > yum install nc pv
shell2 > yum install epel-release
shell2 > yum install nc pv
# 接收端开启端口监听,这里随便选个未占用端口,我这里举例的是5000,记得防火墙放行该端口,接收的文件存储在当前命令运行的目录里
shell2 > nc -l -p 5000 | pv | tar x
# 发送端往指定IP端口发送数据,当前例子是将当前文件夹内所有文件往目标推送
shell1 > tar cf - * | pv | nc 192.168.33.20 5000
# 也可以指定某个文件推送
shell1 > tar cf - /home/work1/test.file | pv | netcat 192.168.33.20 5000