当前位置: 首页 > 科技 > 人工智能 > 服务器间大数据文件传输怎么搞?必备技能快get起来_腾讯

服务器间大数据文件传输怎么搞?必备技能快get起来_腾讯

天乐
2020-07-14 03:34:00 第一视角

方式一:wget 传输

目标

用wget将m1机器上面的 test/路径下的数据传输到m2机器指定路径。

操作

一、m1机器上

1.打包文件

进入所需传输文件的目录对文件打包,由于数据很大,这里后台执行。

tar -cvf 压缩后文件.tar.gz 压缩前文件

nohup tar -cvf testfile.tar.gz test/ &

2.开端口

在当前路径下执行以下命令,端口号用没有被占用的,我用33445

1 ) python -m SimpleHTTPSer2 ) python -m http.server 端口号 # python3

执行后显示:

Serving HTTP on 0.0.0.0 port 33445 ...

二、m2机器上

1.开始传输

1) sudo wget -bc --limit-rate=6M m1机器ip:端口号/压缩文件.tar.gz

2) sudo wget -bc --limit-rate=6M 0.0.0.0:33445/testfile.tar.gz

参数说明:

-b 后台执行

-c 断点续传

–limit-rate=6M 限速6M

查看ip:ip addr

2.查看

默认将日志写入wget-log

tailf wget-log

3.解压

下载完成后解压文件

tar -xvf testfile.tar.gz

方式二:nc传输

接收端:nc -l 端口号 > 文件名.zip (监听一个端口,把接收数据重定向(或者说保存)到文件)

发送端:nc 接收端ip 接收端端口号

如果没有反应,可以测一下端口是不是通的,命令是:

telnet ip 端口号

注意:

服务端先起服务,客户端再使用服务.

端口8889,可以自己改为其他的.如果用的阿里云服务器神马的,确保这个端口加了安全组规则,可供访问

方式三:scp命令

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。scp可以通过ssh传输也可以通过ftp传输。

scp的语法其实很简单,主要注意里面的“@”与“:”。

第一部分:scp -r :如果传输是文件夹需要加-r,传输单个文件可以不加;

第二部分:要上传的文件或者文件夹;

第三部分:另一台设备的用户名和IP地址,用@符号连接;

第四部分:冒号“:”,另一台设别上存储文件的路径。

等待验证,第一次会问是否继续连接,输入yes即可。然后输入密码即可开始上传数据。

数据下载也是同样的步骤,只需要将路径替换一下顺序即可。

注意最后面的传输到本地的路径,一个点,表示数据存储在当前目录下。

SCP的选项参数

scp的选项参数不多,主要使用的就是-r。

-1:强制scp命令使用协议ssh1

-2:强制scp命令使用协议ssh2

-4:强制scp命令只使用IPv4寻址

-6:强制scp命令只使用IPv6寻址

-B:使用批处理模式(传输过程中不询问传输口令或短语)

-C:允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p:保留原文件的修改时间,访问时间和访问权限。

-q:不显示传输进度条。

-r:递归复制整个目录。

-v:详细方式显示输出。

-c cipher:以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config:指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file:从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit:限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option:如果习惯于使用ssh_config(5)中的参数传递方式,

-P port:注意是大写的P, port是指定数据传输用到的端口号

-S program:指定加密传输时所使用的程序。

方式四:rsync 同步文件或目录 从主机拉数据

命令:

rsync -avzP --delete root@:

参数详解

-a 参数,相当于-rlptgoD(-r 是递归 -l 是链接文件,意思是拷贝链接文件;-p 表示保持文件原有权限;-t 保持文件原有时间;-g 保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件); -z 传输时压缩; -P 传输进度; -v 传输时的进度等信息; --delete 删除操作 --exclude 忽略文件或目录

示例:

rsync -avzP --delete root@192.168.1.100:/tmp/rtest1 /tmp/

向备机推数据

主机上启动的流程,同步命令:

rsync -avzP --delete root@:

示例:

rsync -avzP --delete /tmp/rtest1 root@192.168.1.101:/tmp/

一台服务器,不同目录之间进行同步

rsync -avzP --delete /tmp/test_gitlab/web-godPen/ /opt/jenkins/rsync_d/ rsync -avzP --delete 新数据目录 旧数据目录 将新数据目录下的数据,同步至旧数据目录下,实现两个目录之间相同内容。(包括在新数据目录下,文件内容的增删改查及目录的增删改查)

注:如果不加--delete,只会同步增加的内容,新目录中删除的内容,并不会同步到旧目录中。

忽略某个目录(忽略旧数据中某个目录或文件不进行同步)

使用Rsync同步的时候往往会要求对某个文件夹或者文件进行忽略,客户端可以使用--exclude参数来实现对目录或者文件的忽略

注:必须是忽略在前,删除在后,否则没有意义!!!

rsync -avzP --exclude "cc" --delete /tmp/test_gitlab/web-godPen/ /opt/jenkins/rsync_d/

--exclude=a.txt

rsync -rltvz --port=873 --exclude-from=exclude.txt --progress --delete web@192.168.1.1::web /cygdrive/D/web/

a.txt 文件格式如下

Log

abc.txt

.git

.lock

提示:支持键盘“← →”键翻页
为你推荐
加载更多
意见反馈
返回顶部