linux初学者-NFS网络文件系统篇
在上一篇的SAMBA篇中介绍了linux系统和windows系统之间共用的网络文件系统CIFS,主要用于客户端是windows的情况。在linux系统之间,所用的网络文件系统是NFS。下文将对NFS的一些配置及用法进行介绍。
1、NFS的安装以及配置
"yum install nfs-utils -y"。安装NFS服务,"systemctl start nfs"、"systemctl enable nfs-server",开启服务且设置开机自动启动。"systemctl stop firewalld",关闭防火墙或者配置防火墙。
"vim /etc/exports"。这是编写共享目录的文件,这个文件是空的,需要自己填写。如下图所示,建立一个共享目录"/sharedir",在里面建立三个文件"sharefile{1..3}",在"/etc/exports"文件中写入"/sharedir *(sync)",表示共享"/sharedir","*"表示,所有主及均可使用,(sync)是共享权限为文件同步。保存退出后输入"exportfs -rv"刷新,建议不要重启服务,因为重启速度比较慢。
"showmount -e IP"。可以查看这个IP是否有共享文件,例如输入"showmount -e 172.25.254.202"就可以看到上述设置的共享目录"/sharedir"。
"mount 172.25.254.202/sharedir /mnt"。与CIFS网络文件系统不同,NFS不能通过登陆来查看共享内容,只能进行挂载。
2、权限及文件所有人
在配置文件"vim /etc/exports",可以设置某个或者某些主机可以进行共享目录挂载,如下图所示,输入"/sharedir 172.25.254.2(sync)"表示只有"172.25.254.2"这台主机可以进行挂载。
配置文件中输入"sync"代表文件同步,还可以输入"rw"代表开启读写权限,"ro"表示只读。更多的权限设置可以通过"man 5 exports"查看。
如下图所示,在挂载了共享目录后,在其中建立一个文件"file1",这个文件的所有人是"nfsnobody",这是NFS的匿名用户。
可以对配置文件做以下设置来改变建立文件的所有人:
a、将文件的所有人改为root。
在配置文件中的权限内输入"no_root_squash",如下图所示,挂载后建立一个文件"file2",可以看到,文件"file2"的所有人和所有组都为root。
b、指定文件的所有人和所有组
在配置文件中的权限内输入"anonuid=xxxx,anongid=xxxx",列入输入"anonuid=1000,anongid=1001"。刷新后挂载,建立文件"file4",在客户端可以看到,文件的所有人为"1000",所有组为"kiosk",因为kiosk用户组的gid为1001。在服务端可以看到文件的所有人为"uid=1000"的student用户,所有组为"gid=1001"的class组。
3、客户端的自动挂载和自动取消
挂载一般是需要手动挂载和取消挂载的,在使用完后需要取消挂载,这无疑增加了操作的复杂程度,如果忘记取消挂载也会占用系统资源,带来麻烦。如果可以自动挂载和取消就可以避免这个问题了。
在客户端装载软件可以实现这个功能。"yum install autofs",在客户端安装autofs软件可以实现共享目录的自动挂载和自动取消挂载。
"systemctl start autofs",开启这个服务后,会自动生成一个"/net"目录,"cd /net/172.25.254.202"可以直接看到共享目录。而且也可以看到自动挂载在了这个目录"/net"下。
"vim /etc/sysconfig/autofs"。第15行的"timeout"后面的值表示自动取消挂载的时间,如下图所示,将其设置为"3",则表示退出这个目录3秒后自动取消挂载。
4、客户端的指定挂载目录
客户端的自动挂载不仅仅可以挂载在"/net"下,也可以自己设置目录挂载点。
例如欲将共享目录"/sharedir"挂载在客户端的"/nfs/sharedir"目录下。先建立一"/nfs"目录,在配置文件"/etc/auto.master"中编辑"/nfs /etc/auto.nfs",如下图所示,"/nfs"目标挂载点的上级目录,"/etc/auto.nfs"为记录配置共享目录目标挂载点文件。
"vim /etc/auto.nfs"。在这个文件中写入"sharedir 172.25.254.202:/sharedir"。这是配置共享目录目标挂载点。重启服务后进入"/nfs/sharedir"就可以自动挂载了,离开这个目录3秒之后会自动取消挂载。
5、存储分离
存储分离是将共享目录挂载在客户端上,将文件存储在共享目录中,这样如果客户端的主机出现问题,也不会导致数据丢失。
例如将共享目录挂载在客户端的student用户家目录下,那么student用户登陆时,会自动挂载这个共享目录,且student用户所储存的文件会存在这个共享目录下,退出student用户时也可以看到这些文件。具体做法为:
在服务端建立一个"/sharedir/student"的共享目录。在配置文件"/etc/exports"中编辑"/sharedir/student 172.25.254.0/24(rw,anonuid=1000,anongid=1000)"。将这个目录共享出去。
在客户端编辑"/etc/auto.master",在其中编辑"/home /etc/auto.home"。
"vim /etc/auto.home"。编辑"student 172.25.254.202:/sharedir/student"。也可以编辑"* 172.25.254.202:/sharedir/&","*"代表任意共享目录,"&"代表与"*"匹配的目录,用于共享目录下有许多目录时使用。
重启服务后,切换到student用户,则自动挂载到家目录下,建立"file{1..5}"5个文件,退出后3秒自动取消挂载,在服务端的共享目录里就可以看到这5个文件。
linux初学者-NFS网络文件系统篇的更多相关文章
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
- Linux系统NFS网络文件系统
Linux系统NFS网络文件系统 NFS(network file system)网络文件系统,就是通过网络让不同的主机系统之间可以共享文件或目录,此种方法NFS客户端使用挂载的方式让共享文件或目录到 ...
- Linux系统——NFS网络文件系统
在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件,通常网站用户上传的文件都会放到NFS共享里,然后前端所有的节点访问这些静态资源时都会读取NFS存储上的资 ...
- Linux之NFS网络文件系统
NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络资源共享.在NFS的应用中,本地NFS的客户端应用可 ...
- tiny4412 linux+qtopia nfs网络文件系统的挂载
1,首先确定uboot启动内核的bootargs参数 Linux-CommandLine = root=/dev/nfs nfsroot=192.168.1.131:/home/tiny4412/ro ...
- Linux基础学习-NFS网络文件系统实时文件共享
NFS网络文件系统 如果大家觉得Samba服务程序的配置太麻烦了,那么你共享文件的主机都是Linux系统,那么推荐大家在客户端部署nfs服务来共享文件.nfs(网络文件系统)服务可以将远程Linux系 ...
- NFS 网络文件系统挂载在A8板子上
我承认自己是菜鸟,没什么网络知识就来搞挂载nfs网络文件系统,花费了5天的时间才把nfs网络文件系统成功挂载在A8板子上,实现了A8板子和虚拟机的文件共享.分享一下个人经验: 以下是基于nfs已经完成 ...
- [学习嵌入式开发板]iTOP-4412实现NFS网络文件系统
本文转自迅为:http://www.topeetboard.com 学习平台:iTOP-4412开发板 本文讲解如何在 iTOP-4412 开发板上实现 NFS 网络文件系统. 我们使用的软硬件环境是 ...
- linux初学者-普通磁盘分区篇
linux初学者-普通磁盘分区篇 磁盘是计算机的重要组成部分,是记录数据的场所.在使用磁盘时,经常需要对其进行分区来实现不同的用途.下文将介绍在linux系统中普通磁盘分区的方法. "fdi ...
随机推荐
- 取得文件夹内容信息(使用IShellFolder接口)
翻译自MSDN 2005 -> Win32 和 COM 开发 -> User Interface -> Windows User Experience -> Windows S ...
- 深度强化学习day01初探强化学习
深度强化学习 基本概念 强化学习 强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题.强化学习可以在复杂的.不确定的环境中学习如何实现我们设 ...
- Verilog写一个对数计算模块Log2(x)
网上一个能用的也没有,自己写一个把. 1.计算原理: 整数部分 网上找到了一个c语言的计算方法如下: int flog2(float x) { return ((unsigned&)x> ...
- 丢给你一个txt并同时获取你shell
丢给你一个txt并同时获取你shell 0x00:回顾 <文本编辑器Vim/Neovim被曝任意代码执行漏洞> 听闻很多人知道这个漏洞,但是有一部分人能复现成功,一部分人复现不出来.这里我 ...
- JS的第一天,精彩内容
1.JS 介绍 js的全称是JavaScript,它是一门前台语言 Java是一门后台语言 ,它们两个之间毫无关系 JavaScript的作者是布兰登,艾奇 前台语言:运行在客户端 后台语言:与数据库 ...
- WebGL概述
WebGL,是一项用来在网页上绘制和渲染复杂三维图形(3D图形),并允许用户与之交互的技术.WebGL基于OpenGL ES 2.0,使用GLSL ES语言编写着色器.而 OpenGL ES (Ope ...
- 使用docker运行GitLab
从docker镜像拉取代码,docker pull gitlab/gitlab-ce:latest. 创建/srv/gitlab目录sudo mkdir /srv/gitlab 启动GitLab CE ...
- zabbix自定义监控项数据类型错误
问题描述 监控cpu使用率,脚本获取的值是浮点型 zabbix创建监控项时没有选数据类型,导致监控数据有问题. 查看 zabbix-server 日志: ::203016.768 error rea ...
- Java中的反射(1)
Reflection in Java 反射到底是什么呢,我被问到的时候其实也没办法很好的回答这个问题,翻一翻博客,然后逐条讲解.今天干脆就整合一下,免得以后还要去翻. 首先讲一下Java是如何在运行时 ...
- Codeforces 758B:Blown Garland(模拟)
http://codeforces.com/problemset/problem/758/B 题意:给出一个字符串,每4个位置对应一个颜色,如果为‘!’的话,代表该灯泡是坏的,问最后每个颜色坏的灯泡的 ...