不管是运维还是开发应该都是有Linux和Windows之间文件共享的需求,那么,到底都有哪些方法呢?这些方法的适用场景都是哪些?如何才能找到适合自己的应用场景呢?
下面,我将一一总结。
文件共享的定义:A服务器的文件B服务器可以看到,并有对文件的操作权限。A和B可以是Linux也可以是Windows系统。
一,scp
这个是两台可互通的Linux服务器之间最简单直接的共享---文件网络间复制分享,只是需要注意,你需要Linux服务器的root准确密码和所开放的ssh端口,输入对方密码后,通过验证后才可以复制文件。此种方式并不是非常直观,因为全都是命令行方式。
二,利用Python的SimpleHTTPServer(2.6 2.7版本)或者http(3.0以上版本)的模块
这里需要注意,这个基于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