不管是运维还是开发应该都是有Linux和Windows之间文件共享的需求,那么,到底都有哪些方法呢?这些方法的适用场景都是哪些?如何才能找到适合自己的应用场景呢?

下面,我将一一总结。

文件共享的定义:A服务器的文件B服务器可以看到,并有对文件的操作权限。A和B可以是Linux也可以是Windows系统。

一,scp

这个是两台可互通的Linux服务器之间最简单直接的共享---文件网络间复制分享,只是需要注意,你需要Linux服务器的root准确密码和所开放的ssh端口,输入对方密码后,通过验证后才可以复制文件。此种方式并不是非常直观,因为全都是命令行方式。

二,利用Python的SimpleHTTPServer(2.6 2.7版本)或者http(3.0以上版本)的模块

python3.版本下:
3.5版本的时候,由于没有了SimpleHTTPServer此模块,因此上边的内容不再实用,不过翻了下python安装目录的lib中http文件夹中,已经帮实现好了此功能。将此目录下的server.py直接拷贝到要分享的文件夹目录中就好。

其实还有更简单的命令:

python2.版本的环境下:

python -m SimpleHTTPServer 80
python3.版本环境下

python -m http.server 80
在要分享的目录中,直接在命令行中运行以上命令,就可以了,端口可以自定义一个未被占用的,比如,44455。

这里需要注意,这个基于http协议的服务器只有查看文件功能,毕竟没有安全校验,有修改服务器文件的权限是一个十分可怕的事情。当然,Windows服务器也可以运行这些命令,只是需要你提供Python环境就可以了(Linux自带Python2.7,因此,可以方便的直接使用python -m SimpleHTTPServer 44455  这样的命令)。

三,web服务器发布形式

安装httpd或者tomcat或者nginx以及weblogic等等web服务器,直接发布需要共享的文件。

四,vsftp服务形式

vsftp可以做到比较精细的颗粒话安全控制,通常使用虚拟用户模式来搭建该服务器,通过该服务器将需要共享的文件分享出去。

安装部署详见我的另一个博客:​​Linux VSFTP---简单服务其实并不简单(3)---虚拟用户模式的配置_zsk_john的博客-CSDN博客​​

五,Samba服务形式

Samba服务比较中间化,开箱即用,安全权限什么的也比较好控制,Linux和Windows文件共享的交互是最好的(可以在共享目录内像在Windows一样解压或者压缩文件,十分方便。)

六,nfs服务形式

比较常规的文件共享服务,安全权限方面不太好配置,总体来说还是比较简单易用的。

七,iscsi服务形式

块存储模式,该服务搭建完毕后,可以像一个新磁盘一样,方便的挂载到Windows机器上。安装难度较大,安全权限方面不容易配置,使用感受是仅次于Samba,可以说不相上下。

八,运维专用工具类   --   xftp,secureCRT,putty 等等诸如此类的软件(基本都是基于ssh协议)

这个没什么好说的,常用的是xftp和secureCRT,怎么使用地球人都知道。

九,单向传输文件--Windows文件传输到Linux   lrzsz程序---基于Zmodem协议

Zmodem:Zmodem采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能,是目前最流行的文件传输协议

安装lrzsz---在centos7下,命令如下:

yum install lrzsz -y