当前位置: 首页 > news >正文

Linux - nfs服务器

五、nfs服务器

1、基础

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统 中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。

由于NFS支持的功能比较多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些 端口来传输数据,因此NFS的功能所对应的端口并不固定,而是随机取用一些未被使用的小于1024的端 口用于传输。但如此一来就会产生客户端连接服务器的问题,因为客户端需要知道服务器端的相关端口 才能够连接。 此时就需要RPC(Remote Procedure Call,远程过程调用)的服务。由于当服务器在启动NFS时会随机 选取数个端口号,并主动向RPC注册,所以RPC知道每个NFS功能所对应的端口号,RPC将端口号通知给 客户端,让客户端可以连接到正确的端口上去。RPC采用固定端口号port 111来监听客户端的需求并向 客户端响应正确的端口号。 注:在启动NFS之前,要先启动RPC,否则NFS会无法向RPC注册。另外,RPC若重新启动,原来注册的 数据会消失不见,因此RPC重启后,它管理的所有服务都需要重新启动以重新向RPC注册。

安装

#nfs
yum install nfs-utils
#rpc
yum install rpcbind

2、简单配置

创建共享文件

[root@server ~]# mkdir /share -v
mkdir: 已创建目录 '/share'

开启目录共享(编辑配置文件)

[root@server ~]# vim /etc/exports
#编辑文件内容
/share	共享文件目录          192.168.5.0/24(rw)	共享的主机(网段,可以使用*代表所有)以及共享权限
#权限参数可以写多个,使用逗号隔开

相关权限参数

参数说明
rw,ro该目录共享的权限是可读写还是只读,但最终能否读写,还是与 文件系统的 rwx有关
sync,asyncsync代表数据会同步写入到内存与硬盘中,async则代表数据会先暂存于内存 当中,而非直接写入硬盘
no_root_squash root_squash若客户端在共享目录里创建的文件的所属者和所属组是root用户 和root组, 那么显示文件的属主和属组时有以下两种情况: no_root_squash表示,文件 的所属者和所属组是root用户和 root组;root_squash表示将root用户和组 映射为匿名用户和组 (默认设置)。
all_squash no_all_squashall_squash表示客户端所有用户创建文件时,客户端会将文件的用户 和组映射为 匿名用户和组,而no_all_squash表示客户端普通用户创建的 文件的UID和GID是多 少,服务端就显示为多少(默认设置)
anonuid= anongid=将文件的用户和组映射为指定的UID和GID,若不指定默认为 65534(nfsnobody)

客户端挂载

#查看可挂载的主机及其目录
[root@client ~]# showmount -e 192.168.5.100
Export list for 192.168.5.100:
/share 192.168.5.0
#创建文件并挂载
[root@client ~]# mount 192.168.5.100:/share /nfs

测试

#在服务端创建目录
[root@server ~]# mkdir /share/{1,2,3} -pv
mkdir: 已创建目录 '/share/1'
mkdir: 已创建目录 '/share/2'
mkdir: 已创建目录 '/share/3'
[root@server ~]# tree /share
/share
├── 1
│   └── test
├── 2
└── 33 directories, 1 file
[root@server ~]# echo hello > /share/1/test
#客户端查看
[root@client ~]# tree /nfs
/nfs
├── 1
│   └── test
├── 2
└── 33 directories, 1 file
[root@client ~]# cat /nfs/1/test 
hello
#查看挂载情况
[root@client ~]# df -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               4.0M     0  4.0M    0% /dev
tmpfs                  866M     0  866M    0% /dev/shm
tmpfs                  347M  7.0M  340M    3% /run
/dev/mapper/rhel-root   17G  4.3G   13G   27% /
/dev/nvme0n1p2         960M  292M  669M   31% /boot
/dev/nvme0n1p1         599M  7.0M  592M    2% /boot/efi
tmpfs                  174M   52K  174M    1% /run/user/42
tmpfs                  174M   36K  174M    1% /run/user/0
192.168.5.100:/share    17G  4.4G   12G   27% /nfs	#挂载的服务器目录
#若客户端在具备该目录的写权限后,在该目录下创建的文件(在不指定anonuid=和anongid=两个参数的情况下)用户和用户组都为nobody
#服务器给权限
[root@server ~]# chmod 777 /share
#客户端修改目录
[root@client ~]# mkdir /nfs/{4,5,6} -pv
mkdir: 已创建目录 '/nfs/4'
mkdir: 已创建目录 '/nfs/5'
mkdir: 已创建目录 '/nfs/6'
#在客户端看
[root@client ~]# ll /nfs
总用量 0
drwxr-xr-x. 2 root   root   18 118 20:24 1
drwxr-xr-x. 2 root   root    6 118 20:23 2
drwxr-xr-x. 2 root   root    6 118 20:23 3
drwxr-xr-x. 2 nobody nobody  6 118 20:35 4
drwxr-xr-x. 2 nobody nobody  6 118 20:35 5
drwxr-xr-x. 2 nobody nobody  6 118 20:35 6
#服务端看
[root@server ~]# ll /share
总用量 0
drwxr-xr-x. 2 root   root   18 118 12:24 1
drwxr-xr-x. 2 root   root    6 118 12:23 2
drwxr-xr-x. 2 root   root    6 118 12:23 3
drwxr-xr-x. 2 nobody nobody  6 118 12:35 4
drwxr-xr-x. 2 nobody nobody  6 118 12:35 5
drwxr-xr-x. 2 nobody nobody  6 118 12:35 6

3、autofs自动挂载

在一般NFS文件系统的使用过程中,如果客户端要使用服务端所提供的文件系统,可以在 /etc/rc.d/rc.local 中设置开机时自动挂载( /etc/rc.d/rc.local 文件中写入的命令,在每次启动系统用户 登录之前都会执行一次)。但若对端宕机或根本没有启动,会导致主机超时等待。所以我们需要当客户端在有使用NFS文件系统的需求时才让系统自动挂载。当NFS文件系统使用完毕后,让NFS自动卸载。

autofs这个服务是在客户端的上面,它会持续的检测某个指定的目录,并预先设置当使用到该目录的某 个子目录时,将会取得来自服务器端的NFS文件系统资源,并进行自动挂载的操作。

安装软件(客户端)

yum install autofs -y

编辑配置文件

[root@client ~]# vim /etc/auto.master	主配置文件,定义了挂载点和自动挂载的规则
文件内添加:/nfs/test         /etc/auto.suibian#本地端目录    具体挂载配置文件
[root@client ~]# vim /etc/auto.suibian	挂载点的具体配置文件
添加:
*	192.168.5.100:/share	#*表示所有对/nfs/test目录的访问都会触发自动挂载 192.168.5.100:/share

重启服务开启自动挂载

[root@client ~]# systemctl restart nfs-server
[root@client test]# systemctl status autofs
[root@client ~]# cd /nfs/test/
[root@client test]# ll
总用量 0
drwxrwxrwx. 8 root root 60 118 20:35 share
[root@client test]# tree
.
└── share├── 1│   └── test├── 2├── 3├── 4├── 5└── 67 directories, 1 file
[root@client test]# 
#注意:以上操作在关闭防火墙以及selinux的情况下进行

相关文章:

Linux - nfs服务器

五、nfs服务器 1、基础 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统 中看来,那个远程主机的目录就好像是自己的一个磁盘分区一样。 由于NFS支持的功能比较多,而不同的功能都会使用不同的程…...

uniapp图片上传预览uni.chooseImage、uni.previewImage

文章目录 1.上传图片2.预览图片 1.上传图片 uni.chooseImage(OBJECT) 从本地相册选择图片或使用相机拍照。 App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera 微信小程序从基础库 2.21.0 开始, wx.choos…...

C++ 字符串中数字识别

【问题描述】 输入一个字符串,含有数字和非数字字符,如“sumabc234;while(abc700)tab{ass346;bssabc267;}”,将其中连续的数字作为一个整数,依次存放到一个数组nums中。例如,234放在nums[0],700放在nums[1…...

学术中常见理论归纳总结-不定期更新

1.信息传播类 1.1 扩散创新理论 创新扩散理论是传播效果研究的经典理论之一,是由美国学者埃弗雷特罗杰斯(E.M.Rogers)于20世纪60年代提出的一个关于通过媒介劝服人们接受新观念、新事物、新产品的理论,侧重大众传播对社会和文化的影响。 1927-1941年进行的“艾奥瓦杂交玉…...

ModelSim怎么修改字体及大小

点击TOOLS 选择PERFERENCES选择下一级菜单的TEXTFONT/CHOOSE/选择字体和大小最后不要忘记点apply再退出...

图片预处理技术介绍4——降噪

图片预处理 大家好,我是阿赵。   这一篇将两种基础的降噪算法。   之前介绍过均值模糊和高斯模糊。如果从降噪的角度来说,模糊算法也算是降噪的一类,所以之前介绍的两种模糊可以称呼为均值降噪和高斯降噪。不过模糊算法对原来的图像特征的…...

Scrapy管道设置和数据保存

1.1 介绍部分: 文字提到常用的Web框架有Django和Flask,接下来将学习一个全球范围内流行的爬虫框架Scrapy。 1.2 内容部分: Scrapy的概念、作用和工作流程 Scrapy的入门使用 Scrapy构造并发送请求 Scrapy模拟登陆 Scrapy管道的使用 Scrapy中…...

D84【python 接口自动化学习】- pytest基础用法

day84 pytest常用断言类型 学习日期&#xff1a;20241130 学习目标&#xff1a;pytest基础用法 -- pytest常用断言类型 学习笔记&#xff1a; 常用断言类型 代码实践 def test_assert():assert 11assert 1!2assert 1<2assert 2>1assert 1>1assert 1<1assert a…...

如何正确书写sh文件/sh任务?bash任务

正确书写xx.sh文件的方式为&#xff1a; source /usr/local/miniconda3/bin/activate condaEnv export CUDA_VISIBLE_DEVICES0 cd /hy-tmp/test export PYTHONPATH"xxx:$PYTHONPATH" python AAA.py python BBB.py python CCC.py 直接运行&#xff1a; bash xx.sh 即可…...

多线程篇-5--线程分类(线程类型,springboot中常见线程类型,异步任务线程)

常见的线程类型包括用户线程&#xff08;User Threads&#xff09;、守护线程&#xff08;Daemon Threads&#xff09;、主线程&#xff08;Main Thread&#xff09;、工作线程&#xff08;Worker Threads&#xff09;和线程池中的线程。 一、用户线程&#xff08;User Thread…...

docker快速部署gitlab

文章目录 场景部署步骤默认账号密码效果 场景 新增了一台机器, 在初始化本地开发环境&#xff0c;docker快速部署gitlab 部署步骤 编写dockerfile version: 3.7services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: gitlabenviron…...

C# 数据类型详解:掌握数据类型及操作为高效编码奠定基础

本文将带你深入了解C#中各种数据类型的特点、用途和最佳实践&#xff0c;让你不仅能熟练运用基本类型&#xff0c;还能掌握如何在实际项目中做出最合适的选择。 目录 C#基本语法 C#数据类型 C#类型转换 C#变量常量 C#基本语法 在学习C#之前我们要先知道C#的基础构建是由哪些…...

burp2

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

[ACTF2020 新生赛]BackupFile--详细解析

信息搜集 让我们寻找源文件&#xff0c;目录扫描&#xff1a; 找到了/index.php.bak文件&#xff0c;也就是index.php的备份文件。 后缀名是.bak的文件是备份文件&#xff0c;是文件格式的扩展名。 我们访问这个路径&#xff0c;就会直接下载该备份文件。 我们把.bak后缀删掉…...

循环神经网络(RNN)简述

RNN及其变体 1、概述 (一)、概念 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出。 RNN的循环机制使模型隐层**上一时间步产生的结果, 能够作为当下时间步…...

九、Ubuntu Linux操作系统

一、Ubuntu简介 Ubuntu Linux是由南非人马克沙特尔沃思(Mark Shutteworth)创办的基于Debian Linux的操作系统&#xff0c;于2004年10月公布Ubuntu是一个以桌面应用为主的Linux发行版操作系统Ubuntu拥有庞大的社区力量&#xff0c;用户可以方便地从社区获得帮助其官方网站:http…...

SpringBoot 新冠密接者跟踪系统:校园疫情防控的智能守护者

摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到了互联网时代才发现能补上自古…...

【Ubuntu】E: Unable to locate package xxx

报错描述 在 Ubuntu 上 执行 apt install xxx 出现下面的报错&#xff1a; 即无法定位到该 Package&#xff0c;一般形式如下&#xff1a; # apt install xxx Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable …...

vue多页面应用集成时权限处理问题

在多页面应用&#xff08;MPA&#xff09;中&#xff0c;权限管理通常会涉及到每个页面的访问控制、身份验证、以及权限校验。以下是几种常见的权限处理方式&#xff1a; 1. 前端路由权限控制 原理&#xff1a;虽然是多页面应用&#xff0c;通常每个页面会独立加载和渲染&…...

Socket编程(TCP/UDP详解)

前言&#xff1a;之前因为做项目和找实习没得空&#xff0c;计算机网络模块并没有写成博客&#xff0c;最近得闲了&#xff0c;把计算机网络模块博客补上。 目录 一&#xff0c;UDP编程 1&#xff09;创建套接字 2&#xff09;绑定端口号 3&#xff09;发送与接收数据 4&…...

Java集成Gemma大模型:本地推理与生产部署实战指南

1. 项目概述&#xff1a;当Gemma遇上Java 最近在开源社区里&#xff0c;一个名为 mukel/gemma4.java 的项目引起了我的注意。光看这个标题&#xff0c;熟悉AI模型和Java生态的朋友可能已经会心一笑。没错&#xff0c;这个项目直指一个核心痛点&#xff1a;如何让Google最新推…...

避坑指南:在CentOS 7.5上成功安装Ansys 19.2的完整流程(附字体问题终极解决方案)

CentOS 7.5与Ansys 19.2黄金组合&#xff1a;工业仿真环境搭建实战手册 在工程仿真领域&#xff0c;Ansys作为行业标准工具链的核心组件&#xff0c;其Linux环境部署一直是技术人员的痛点。经过长达三个月的多版本交叉测试&#xff0c;我们意外发现CentOS 7.5与Ansys 19.2的组合…...

IDEA 2023.2 版本中,如何一键开启Services面板管理你的Spring Boot微服务集群?

IDEA 2023.2 版本中如何高效管理Spring Boot微服务集群 微服务架构的流行让开发者面临一个现实挑战&#xff1a;如何在本地开发环境中高效管理多个同时运行的Spring Boot服务。传统方式需要逐个启动、切换终端查看日志&#xff0c;既浪费时间又容易造成混乱。JetBrains IDEA作为…...

跨端三维GIS实战:uni-app集成Cesium.js的RenderJS方案解析

1. 为什么需要跨端三维GIS解决方案 最近几年三维GIS应用越来越普及&#xff0c;从传统的Web端到移动端APP&#xff0c;开发者都希望实现"一次开发&#xff0c;多端运行"的目标。uni-app作为跨端开发框架&#xff0c;天然具备这个优势。但当我们想在uni-app中集成Cesi…...

暖心指南|心理干预案例分享关键点!

行业痛点分析重庆市作为西部人口密集城市&#xff0c;心理健康问题呈现年轻化、复杂化趋势。调研数据显示&#xff0c;2022年全市心理健康机构年接诊量突破18万人次&#xff0c;但供需矛盾持续加剧。当前主要存在三方面挑战&#xff1a;临床诊断精度不足&#xff1a;传统评估依…...

从‘仿真’到‘半虚拟化’:一文读懂VMware虚拟网卡(E1000/E1000E/VMXNET3)的工作原理与演进史

从仿真到半虚拟化&#xff1a;虚拟网卡技术演进与设计哲学深度解析 虚拟化技术已经成为现代计算架构的基石&#xff0c;而网络虚拟化则是其中最为关键的组成部分之一。在虚拟化环境中&#xff0c;虚拟网卡作为连接虚拟机与外部世界的桥梁&#xff0c;其设计理念直接影响着整个…...

为什么92%的AI企业还没部署TEE for AI?,20年系统安全专家亲历的4类认知盲区与2026合规倒计时应对清单

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生可信执行环境&#xff1a;2026奇点智能技术大会TEE for AI 在2026奇点智能技术大会上&#xff0c;TEE for AI&#xff08;AI-Native Trusted Execution Environment&#xff09;正式成为下一代AI…...

模拟计算机应急救场:从400Hz电源故障看经典工程思维

1. 项目概述&#xff1a;一次由模拟计算机主导的“救场”1984年&#xff0c;在宾夕法尼亚州费城的一个大型测试实验室里&#xff0c;一个为海军战斗机设计的红外跟踪系统正面临一场突如其来的危机。这个系统被安装在一个三轴液压驱动的万向节上&#xff0c;需要在特定的400赫兹…...

InjectFix实战:除了修Bug,如何在Unity里用它安全地‘新增’功能与属性?

InjectFix实战&#xff1a;突破Bug修复边界&#xff0c;安全扩展Unity功能 在Unity开发中&#xff0c;InjectFix作为热修复方案早已被开发者熟知&#xff0c;但大多数教程仅停留在修复Bug的基础用法上。当线上版本需要临时增加活动界面属性或工具函数时&#xff0c;重新打包发布…...

数据标注平台搭建:支持主动学习的智能标注工具

在软件测试领域&#xff0c;测试数据的质量直接决定了测试覆盖率和缺陷发现能力。随着AI驱动测试的兴起&#xff0c;高质量标注数据成为训练测试预言、缺陷预测模型、自动化测试脚本生成等智能测试工具的核心资产。然而&#xff0c;传统的人工标注方式效率低下、一致性差&#…...