技术标签: Linux Linux共享服务——NFS
NFS即网络 文件系统,是由Sun公司开发的一种通过网络方式共享文件系统的通用共享解决方案
NFS服务监听在TCP2049端口
NFS服务所需软件有 nfs-utils、rpcbind(用来替换CentOS老版本中的portmap提供RPC协议服务)
NFS服务通过读取/etc/exports配置文件设定哪些客户端可以访问NFS共享文件系统,该文件的书写原则如下:
完整的共享条目语法结构如下(客户端主机可以时一个网段、单台主机或主机名):
共享路径 客户端主机 (选项)
当然我们也可为多个客户主机设置不同的访问设置,语法结构如下:
共享路径 客户端主机1 (选项) 客户端主机2 (选项) ...
最简单的NFS配置可以仅给定一个共享路径与一个客户端主机,而不指定选项,因为没有选项时,NFS将使用默认设置,而默认属性为 ro、sync、wdelay、no_root_squash。具体的NFS属性及其对应的含义可以查看下表。
NFS选项 | 功能 | NFS选项 | 功能 |
---|---|---|---|
ro | 只读共享 | rw | 可读可写共享 |
sync | 同步写操作 | async | 异步写操作 |
wdelay | 延迟写操作 | root_squash | 屏蔽远程root权限 |
no_root_squash | 不屏蔽远程root权限 | all_squash | 屏蔽所有的远程用户权限 |
下面来通过案例演示NFS服务的搭建过程:
共享/var/web/与/var/cloud/目录,在该案例中172.16.0.0/16网段内的所有主机均可以异步可读可写访问web目录,且不屏蔽root用户对web目录的访问权限,任何主机都可以同步只读访问/var/colud目录。
实际操作如下:
[[email protected] ~]# yum -y install nfs-utils rpcbind
[[email protected] ~]# rpm -qa |grep nfs-utils
nfs-utils-1.3.0-0.65.el7.x86_64
[[email protected] ~]# rpm -qa |grep rpcbind
rpcbind-0.2.0-48.el7.x86_64
[[email protected] ~]# useradd -u 1003 jerry
[[email protected] ~]# mkdir /var//{web,cloud}
[[email protected] ~]# chmod a+w /var/web
[[email protected] ~]# cat /etc/exports
[[email protected] ~]# systemctl restart nfs
[[email protected] ~]# systemctl enable nfs
客户端可以通过showmount命令查看服务器共享信息,通过mount挂载NFS共享,mount挂载属性有很多,这些属性为我们提供了丰富的挂在特性与功能
client1主机挂载nfssever共享目录/var/web目录,该共享目录可以读写,且root账号不会被映射为匿名账号(root的权限会被保留)
[[email protected] /]# showmount -e 172.16.0.254
[[email protected] ~]# mkdir /var/web
[[email protected] ~]# useradd -u 1003 jerry
[[email protected] ~]# mount 172.16.0.254:/var/web /var/web #手动挂载
[[email protected] ~]# echo\ #设置开机自动挂载
>"172.16.0.254:/var/web/ nfs /defaults 0 0" >> /etc/fstab
[[email protected] ~]# chmod a+w /var/web #给所有的用户可写权限
[[email protected] web]# cd /var/web ; touch root.txt
[[email protected] 7 /]# ll /var/web/
[[email protected] web]# su - jerry
[[email protected] ~]# cd /var/web/
[[email protected] web]# touch jerry.txt
[[email protected] web]# ls -l
client2挂载使用NFS服务器的共享目录 /var/cloud 至本机 /var/cloud 目录,该目录为只读共享,默认root权限会自动映射为nfsnobody账号,普通账号权限将保留
[[email protected] ~]# mkdir /var/cloud
[[email protected] ~]# useradd -u 1003 jerry
[[email protected] ~]# mount 172.16.0.254:/var/cloud /var/cloud
[[email protected] ~]# echo\ #设置开机自动挂载
>"172.16.0.254:/var/cloud/ /var/cloud nfs /defaults 0 0" >> /etc/fstab
[[email protected] ~]# cd /cloud/
[[email protected] cloud]# touch root.txt
1、权限问题
很多时候,当你在 /etc/exports 配置文件中设置共享目录为可读写时,却忘记了修改相应系统层面的文件及目录权限,从而导致客户端实际挂载使用时无写权限,系统提示信息一般为"Permission denied",我们在对配置文件设置写权限后一定要记住修改相关目录、文件的权限。另外,客户端使用root访问NFS共享进行读写操作时,服务器会自动把root转换为服务器本机nfsnobody账号,这会导致root无法进行相应的操作,如果要保留root权限,则需要在配置文件中添加 no_root_squash 选项。
2、rpcbind 问题
在没有启动 rpcbind 的情况下,启动nfs服务时系统会报错:FNS mountd、rpc.rquotad、rpc.nfsd 无法启动,因为这些服务都依赖与 rpcbind 服务,这样就需要先确保 rpcbind 启动后再开启 nfs 以及相关服务进程。通过 rpcinfo -p 可以查看基于RPC协议的服务是否成功与 rpcbind 通信,并注册信息。
3、兼容性问题
在工作环境中,当客户端需要使用NFSv3版本挂载以满足兼容性要求时,则需要使用 nfsvers 选项设置特定的版本信息,并且再 /etc/fstab 开机自动挂载文件中也需要进行相应的修改
[[email protected] ~]# mount -o nfsvers=3 172.160.254:/var/web /var/web
/etc/fstab 文件书写格式为:
172.16.0.254:/var/web /var/web nfs defaults,nfsvers=3 0 0
4、挂载错误
系统提示 NO such file or directory,说明服务器上没有相应的挂载点目录,应检查确定目录名称是否正确
5、防火墙错误
系统提示 mount: mount to NFS server '172.16.0.254em Error:No route to host,这说明nfs服务的默认端口2049被防火墙屏蔽,需要修改防火墙规则开放2049端口
工作中每日需要把Excel文件整理插入透视表,对文件信息进行整理,并把相对应每条信息的负责人发送给微信群里相对应的微信好友,最后对Excel文件进行统计,发送每个负责人的统计信息。Python 通过读取Excel文件并把相关信息@给相应的微信好友采用wxpy第三方包(微信模块登入微信),通过微信二维码扫描进入。# coding=utf-8from Tkinter import *...
引言 在Android的应用中,经常会见到底部菜单,例如微信的底部菜单如下所示: 而在企业级的Android应用中,也存在同样的需求,但与微信这些大众软件的区别在于企业级的Android应用由于UI页面很多,每个页面都需要有底部菜单,而且每个页面的底部菜单按钮还可能完全不一样,所以,为了使每个页面保持一致性并为UI页面制作时提供便利,针对底部菜单进行专门的设计封装,就显得特别重要
arpspoof工具使用方法如下:arpspoof -i 网卡 -t 目标ip 网关在局域网中获取到了本机的网卡名以及被攻击主机的ip和网关后可进行ARP断网攻击,被攻击主机无法上网,攻击成功。kali默认不支持IP转发,其配置文件写在/proc/sys/net/ipv4的ip_forward中,默认为0。若进行ARP欺骗,首先要开始IP转发功能,将其修改为1。echo 0 >
博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导):ssm项目打包后mybatis的mapper.xml文件没有放进去问题出现的原因:ssm项目打包后mybatis的mapper.xml文件没有放进去最起先并没有察觉到mapper.xml文件不在编译目录中,最先出现的问题是,我在mapper.java和mapper.xml中写好了对应的sql语句,和接口方法,但是...
目录1.程序的内存模型1.1代码区:存放所有代码1.2全局区:存放全局变量和静态变量以及常量(字符串常量、全局常量const修饰)1.3栈区:由编译器自动分配和释放,存放函数的参数值、局部变量等1.4堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收1.5 new运算符2、引用:给变量取别名2.1 引用的基本语法2.2 引用注意事项2.3 引用做函数参数2.4引用做函数返回值2.5引用的本质2.6 常量引用3、函数3.1函数.
phpExcel导出时,windows正常,linux报Class 'PHPExcel_Writer_Excel2007' not found
Android设置字体大小, 该用sp还是dp? 大部分人肯定脱口而出, 用sp啊,
我们在windows系统上面使用R使用的好好的,那为什么要在Linux系统上面用呢?主要是一些东西不支持在Windows上面运行,比如说什么Hadoop,什么tensorflow的,它们都需要在Linux环境。
2019猪年元宵节马上要到来了,今年的第一个月圆之日,月亮都一样,但我们不一样,所以要来一点不一样的表情包,不一样的祝福,开开心心的来闹元宵吧。小黑猪盖一个红盖头是不是感觉特别的喜庆,今年是猪年啊,闹元宵走起啦。2019的首个月圆之夜,福也到了,再送你一碗热气腾腾的汤圆,来来,张嘴,喂你一个,猜猜是什么馅,猜对了你一年都顺顺当当,猪事顺利;猜错了你一年什么都不用愁,饭来张口,衣来伸手。张开你的鼻子...
软件项目成本计划估算过程概念软件项目规模软件项目规模即工作量例如:软件规划,软件管理,需求,设计,编码,测试,以及后期的维护等任务。软件规模单位LOC(Loc of Code)源代码长度的测量FP(Function Point)用系统的功能数量来测量人月人天人年软件项目成本完成软件规模相应付出的代价待开发的软件项目需要的资金人的劳动的消耗所需要的代价是软件产品的主要成本货币单位成本估算结果直接成本是软件产品的主要成本.
Mac IntellJ IDEA安装路径查找