# server A & server B上都要执行 yum -y install tar socat; # server A(ip:1.1.1.1)上执行 cd dest_path; socat tcp4-listen:11111 stdout | tar xvpf - # server B上执行 cd src_path; tar cvf - files | socat stdin tcp4:1.1.1.1:11111 # server B上的src_path/files==>server A的dest_path/files # 在千兆环境下,拷贝速度可以稳定达到800M以上。
# server A & server B上都要执行 yum -y install tar socat xz; # server A(ip:1.1.1.1)上执行 cd dest_path; socat tcp4-listen:11111 stdout | tar xJvpf - # server B上执行 cd src_path; tar cJvf - files | socat stdin tcp4:1.1.1.1:11111 # 在千兆环境下,拷贝速度只有10M(压缩后)左右。
如果从命令行简洁程度来讲,还不如直接用 nc 呢。:)
1 2 3 4 5 6 7 8 9
# server A & server B上都执行 yum -y install nc; # server A(ip:1.1.1.1)上执行 cd dest_path; nc -4l 11111 | tar xv # server B上执行 cd src_path; tar cvf - files | nc -q 0 1.1.1.1 11111 # 上面命令里的 "-q 0" 的意思是发完数据就发一个完成标识,避免数据已然传完但 nc 进程一直挂着的现象