如何优雅的实现文件上传或下载

在工作过程中,我们经常需要上传文件到服务器或者从服务器下载文件到本机,这时大家首先想到的是用scp或者rz、sz等上传下载工具,但是有时候公司基于生产环境安全性的考虑,禁用了这些功能,或者未安装这些工具。这时,我们如何优雅的实现文件的复制(上传)和下载呢?

文件复制

文件复制,我们可以使用NetCat命令来实现。NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。下面我简单介绍一下使用nc实现文件复制的方式。
1.在目标服务器上开启监听 :nc -l port > filename


开启监听,监听端口11111

2.待复制文件所在的机器,向目标机器发送文件: nc ip port < filename


向目标机器发送文件

这样,我们就可以实现机器之间文件的复制了。

文件下载

文件下载功能,我们可以python命令来实现。利用Python自带的包可以建立简单的web服务器,然后在需要下载文件的机器上使用wget工具下载文件。
1.在shell里cd到准备做服务器根目录的路径下,输入命令:
python -m Web服务器模块 [端口号,默认8000]
例如,我们要下载目录intelligent/下文件mLualib.so,我们需要先进入到该目录,然后执行

python -m SimpleHTTPServer 8080

如图所示


建立web服务器

2.登录到待下载文件的机器上,执行

    wget http://10.213.41.71:11111/mLualib.so

如图所示:


如何优雅的实现文件上传或下载_第1张图片
下载文件

这样,就能把文件mLualib.so下载到本地了。

nc常用参数

nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]

参数说明:
-g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。

相关阅读:

当CPU飙高时,它在做什么

Linux查看实时网卡流量的几种方式

Nginx+lua 调用.so文件


本文首发在 刘振锋的博客 原文地址为《如何优雅的实现文件上传或下载》转载请注明!

你可能感兴趣的:(如何优雅的实现文件上传或下载)