Linux跨主机大文件传输技巧
一、gzip + scp
gzip -c /backup/mydb.myd > mytable.myd.gz
scp mytable.myd.gz root@server2:/var/lib/mysql/mydb/
二、gzip + scp,减少磁盘读写,更快
gzip -cl /backup/mydb.myd | ssh root@server "gunzip -c - > /var/lib/mysql/mydb/mytable.myd"
三、非跨网环境传输,不需要ssl加解密的情况下使用nc,更快
从server1向server2传输,先在server2上开启监听端口12345,传输到该端口的文件都直接gunzip到指定目录
nc -l -p 12345 | gunzip -c - > /var/lib/mysql/mydb/mytable.myd
server1压缩后传输到server2对应端口上
gzip -cl - /backup/mydb.myd | nc -q 1 server2 12345
server2使用tar命令
nc -l -p 12345 | tar xvzf -
server1使用tar命令
tar cvzf - /var/lib/mysqlmydb/mytable.myd | nc -1 1 server2 12345
四、耗时对比
方法 | 时间 |
---|---|
rsync,不使用压缩 | 71 |
scp,不使用压缩 | 68 |
nc,不使用压缩 | 67 |
rsync,使用压缩(-z) | 63 |
gzip,scp和gunzip | 60(44+10+6) |
ssh,使用压缩 | 44 |
nc,使用压缩 | 42 |
--EOF--