linux远程拷数据

简单说明

远程拷数据在工作中是经常使用到的场景,其中有的传输是校验数据的有的传输不校验数据,不校验数据的虽然速度快很多,但是容易出错,特别是在拷贝上T的大文件时就经常数据不一致,所以一般在做数据的过程中使用校验数据的方式比较靠谱;

工具介绍

1、scp

scp是校验数据的传输格式,如果没有信任关系就需要用户名密码,常见的几个用法

本地传到远程
scp user@pass  /etc/lilo.conf   [email protected]:/home/k

远程传到本地

scp user@pass [email protected]:/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限速传输


a. 拷贝本地文件;当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。b使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST

路径地址包含单个冒号":"分隔符时启动该模式。


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章