方法一:通过tar + ssh
tar -c /path/to/dir | ssh remote_server 'tar -xvf - -C /absolute/path/to/remotedir'
方法二:通过rsync
rsync -avW -e 'ssh -p Port' /path/to/dir/ remote_server:/path/to/remotedir
方法三:通过tar + netcat
在需要发送数据的电脑的数据目录下运行:
tar -cz . | nc -q 10 -l -p 12345
在另一个接收电脑的接收目录下运行:
nc -w 10 $REMOTE_HOST 12345 | tar -xz
降$REMOTE_HOST替换为发送机器的IP。可以根据需求将端口45454换成自己的端口。
总结:
在传输大量的小文件是,方法一和方法三会有比较高的效率,因为这两种方法通过tar将所有小文件打包为一个大文件传输,不用每个小文件建立一次连接。