摘要:本文介绍linux下的几种网络共享文件的传输:NFS、Samba、FTP及基于SSH传输协议的sftp。这里仅介绍如何使用已有共享资源,对于服务器的配置暂不介绍。
1、linux间的网络硬盘:NFS。
NFS目前只用于在linux和UNIX主机间共享文件系统。通过NFS可以方便地将一台linux(或者UNIX)主机上的文件系统挂载到本地。当然,这要求对方主机开启了NFS服务器,并对共享的文件系统做了相关的设置。
(1)如何安装NFS文件系统呢?
与安装本地文件系统一样,区别在于需要给mount命令指定一个远程主机名(或者IP地址)。
例:sudo mount 192.168.1.111:/default/mnt #将主机192.168.1.111上导出的/default安装到mnt目录下
安装成功之后就可以像使用本地文件一样使用它了,如果安装失败的话,可能是因为服务器端的NFS服务器没有正确导出这个目录,可以使用带-e选项的showmount查看服务器端导出的目录。
例:showmount -e 192.168.1.111 #查看主机192.168.1.111导出的目录
(2)在安装文件系统时,我们可以选择合适的安装选项来对文件系统进行安装:
在默认情况下,mount命令会根据NFS服务器上的设置,选择合适的安装选项。如果确定NFS服务器以可写方式导出了这个文件系统,那么可以使用-o选项配合rw标志,明确以可读写方式安装这个文件系统。
例:sudo mount -o rw 192.168.1.111:/default/mnt #以可读写方式挂载
注意:rw标志实际上是“推荐”mount命令用可读写方式安装文件系统。如果NFS服务器上的设置是不允许外部可写,那么mount会自动选择以只读方式安装。
常用的 NFS安装标志有:
rw:以可读写方式安装文件系统。
ro:以只读方式安装文件系统。
bg:如果安装失败,那么在后台继续发送安装请求。
hard:“硬安装”方式。如果服务器没有响应,那么暂时挂起对服务器的访问,直到服务器恢复。
soft:“软安装”方式。如果服务器没有响应,那么返回一条出错信息,并中断正在执行的操作。
intr:允许用户中断某项操作,并返回一条错误信息。
nointr:不允许用户中断。
timeo=n:请求的超时时间。n以十分之一秒为单位。
tcp:使用TCP协议传输文件(默认选择UDP)
async:要求服务器在实际写磁盘之前就回应客户机的写请求。
“硬安装”是mount命令的默认安装方式,使用这种安装方式有助于NFS传输的稳定。如果因为网络原因使某个程序的传输暂时被阻塞,那么客户机还会继续等待,直到传输恢复正常。与此相对,“软安装”时,一次短暂的故障就可能毁掉几个小时的劳动成果。但如果用户正在和一台不那么重要的NFS服务器打交道,那么soft标志有助于避免把时间浪费在无谓的等待上。
intr允许用户在发现某项操作没有回应的时候中断它,通常,给“硬安装”方式配合intr标志是一种比“软安装”更好的方式,这样既可以保证重要操作不会被意外中断,又能让用户在适当的时候中断某项操作。
使用逗号分隔多个不同的选项。下面这条命令以可读写、硬安装、可中断、后台重试安装请求的方式安装远程NFS文件系统。
例:sudo mount -o rw,hard,intr,bg 192.168.1.111:/default/mnt
(3)卸载文件系统:与本地文件系统的卸载一般,使用umount命令。
例:sudo umount/mnt
(4)如果需要在启东时让机器自动挂载远程的NFS文件系统,可以通过修改/etc/fstab进行配置。
例:192.168.1.111:/default/mnt nfs rw,hard,intr,bg 0 0 #文件系统类型为nfs
2、与Windows进行传输共享:Samba。
(1)Windows中,并不使用NFS,而是使用CIFS的协议机制进行共享文件。CIFS本质上是SMB的升级版本,是由Andrew Tridgell于1991年采用逆向工程对SMB协议进行实现开发出来的。Tridgell将这个开发出来的软件包取名为Samba。
(2)Samba包括一个服务器端和几个客户端程序。安装在linux主机上的Samba的服务器端程序向Windows机器提供linux共享,Windows主机不需要为此安装其他特殊的工具。Samba的客户端程序用于获取Windows主机的共享内容。
(3)smbtree:用于查看当前网络上的共享资源。
-S选项:简单的列出当前网络上的共享主机列表。当smbtree询问口令时,直接回车(表示不需要口令)即可。如果不指定—S选项,那么smbtree会试图与搜索到的共享主机建立连接。
—U:可以指定与哪个用户名进行连接,并提供对应的口令。
-b:指定smbtree使用广播的方式搜寻整个网络。
例:smbtree -b -U smbuser #以广播方式搜寻整个网络,并指定以用户smbuser与搜寻到的共享主机建立连接。