简单说明
远程拷数据在工作中是经常使用到的场景,其中有的传输是校验数据的有的传输不校验数据,不校验数据的虽然速度快很多,但是容易出错,特别是在拷贝上T的大文件时就经常数据不一致,所以一般在做数据的过程中使用校验数据的方式比较靠谱;
工具介绍
1、scp
scp是校验数据的传输格式,如果没有信任关系就需要用户名密码,常见的几个用法
本地传到远程
scp user@pass /etc/lilo.conf user@net67.ee.oit.edu.tw:/home/k
远程传到本地
scp user@pass user@net67.ee.oit.edu.tw:/etc/lilo.conf ./
常用参数:
-r 拷贝目录
-l 限速
-C 强行压缩
-B 选择批处理模式(防止输入密码)
-q 把进度参数关掉
2、rsync
rsync拷贝文件只是他的一个小应用,rsync功能 远不止于此,比如有这样一个需求,本地mysql会实时产生二进制文件,但是我还有若干服务器需要分析mysql的二进制文件,这可以用rsync来做实时更新,可以节约大量带宽;可以使用ssh方式来传输文件,这样其保密性也非常好,中间也会做文件校验,不容易出错,可以配置允许哪些IP可以访问,哪些IP不可以访问hosts allow = 192.168.100.90 #哪些电脑可以访问rsync服务,hosts deny = 192.168.100.0/24 #哪些电脑不可以访问rsync服务,rsync也可以指定配置文件,如果信任关系需要使用密码才可以使用;
常见参数
v详细提示
a以archive模式操作,复制目录、符号连接
z压缩
u只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
--bwlimit限速传输
路径地址包含单个冒号":"分隔符时启动该模式。
3、NetCat简称nc
从server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:
nc -l -p 8181 |tar xvf -
tar 是在传输过程打包
在server 1上运行
tar cvf - dir| nc -w 1 server2IP 1234
上面的方式就是将dir打包从server1传到server 2
常见参数
-i secs 延时的间隔
-l 监听模式,用于入站连接
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 任意指定本地及远程端口
-s addr 本地源地址
-u UDP模式
-v 详细输出——用两个-v可得到更详细的内容
-w secs timeout的时间
4 wget
这个工具在传输大文件是基本不用,因为wget在传输过程中不校验数据,速度虽然相当给力但是数据容易出错,传输小文件的出错概略比较小,但是传输大文件出错概略比较大,在做数据的过程不建议用wget;
参考文献
http://www.ha97.com/4169.html
http://blog.csdn.net/jackdai/article/details/460460
http://www.huanxiangwu.com/477/linux-nc-netcat