RHEL8_Linux访问NFS存储及自动挂载
本章主要介绍NFS客户端的使用
- 创建FNS服务器并通过NFS共享一个目录
- 在客户端上访问NFS共享的目录
- 自动挂载的配置和使用
1.访问NFS存储
1)首先在node01上启动nfs-server 服务并设置开启自动启动,命令如下。
[root@node01 ~]# systemctl enable nfs-server.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@node01 ~]#
2)创建准备共享的目录/share,命令如下。
[root@node01 ~]# mkdir /share
3)在/etc/exports中把目录/share共享出去,命令如下。
[root@node01 ~]# vim /etc/exports
[root@node01 ~]# cat /etc/exports
/share 192.168.182.0/24(rw,no_root_squash)
[root@node01 ~]# - 这里可以用通配符 “*” 表示任何客户端都可以访问目录
- 可以使用网段例如:192.168.182.0/24
- 也可以使用IP地址,例如:192.168.182.210/24
4)让共享生效,命令如下
[root@node01 ~]# exportfs -arv
exporting 192.168.182.0/24:/share
[root@node01 ~]# 5)在server上配置防火墙放行NFS,命令如下。
[root@node01 ~]# firewall-cmd --add-service=nfs
success
[root@node01 ~]# firewall-cmd --add-service=nfs --permanent
success
[root@node01 ~]# firewall-cmd --add-service=rpc-bind
success
[root@node01 ~]# firewall-cmd --add-service=rpc-bind --permanent
success
[root@node01 ~]# firewall-cmd --add-service=mountd
success
[root@node01 ~]# firewall-cmd --add-service=mountd --permanent
success
[root@node01 ~]# 6)查看防火墙是否成功添加服务
[root@node01 ~]# firewall-cmd --list-all
public (active)target: defaulticmp-block-inversion: nointerfaces: ens160sources: services: cockpit dhcpv6-client mountd nfs rpc-bind sshports: protocols: forward: nomasquerade: noforward-ports: source-ports: icmp-blocks: rich rules:
[root@node01 ~]# 7)在node02上访问这个共享文件夹,首先使用show mount命令查看服务器上共享的目录,命今如下。
[root@node02 ~]# showmount -e 192.168.182.200
Export list for 192.168.182.200:
/share 192.168.182.0/24
[root@node02 ~]#
8)把服务器上共享的目录挂载到本地/nfs目录上,命令如下。
[root@node02 ~]# mount 192.168.182.200:/share /nfs/
[root@node02 ~]#
9)查看挂载情况,命令如下。可以看到已经挂载好了
[root@node02 ~]# df -Th | grep nfs
192.168.182.200:/share nfs4 44G 5.4G 39G 13% /nfs
[root@node02 ~]# 10)如果希望开机能够自动挂载,则写入/etc/fstab中,命令如下
[root@node02 ~]# vim /etc/fstab //编辑文件
[root@node02 ~]# cat /etc/fstab | grep nfs //查看并过滤内容
192.168.182.200:/share /nfs nfs defaults 0 0
[root@node02 ~]#
2.自动挂载
1)挂载光盘,命令如下
[root@node01 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@node01 ~]# 这里准备发光盘作为本地YUM源
2)编写repo文件,命令如下
[root@node01 ~]# cat /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0[bb]
name=bb
baseurl=///mnt/BaseOS
enabled=1
gpgcheck=0
[root@node01 ~]# 3)更新yum仓库
[root@node01 ~]# updatedb 4)开始安装autofs,命令如下。
[root@node01 ~]# yum -y install autofs
5)启动autofs并设置开机自动启动,命令如下。
[root@node01 ~]# systemctl enable autofs.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
[root@node01 ~]#
6)下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来,命令如下。
[root@node01 ~]# mkdir /zz 注意:这里不需要创建目录/zz/dvd,这个目录会自动创建。
7)在/etc/auto.master.d目录中创建一个后缀为 autofs的文件,后缀必须是autofs,这里创建的是aa.autofs,命令如下。
[root@node01 ~]# cat /etc/auto.master.d/aa.autofs
/zz /etc/auto.aa
[root@node01 ~]# 8)这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定,内容使用【Tab】键进行分隔。下面创建/etc/auto.aa,命令如下。
[root@node01 ~]# df -Th | grep iso //查看文件系统
/dev/sr0 iso9660 11G 11G 0 100% /mnt
[root@node01 ~]#
[root@node01 ~]# vim /etc/auto.aa //编辑文件内容
[root@node01 ~]# cat /etc/auto.aa //添加以下内容
dvd -fstype=iso9660,ro :/dev/cdrom
[root@node01 ~]#

子目录 -fstype= 文件系统,选项1,选项2 :外部设备 9)重启autofs服务,让我们刚做的配置生效,命令如下。
[root@node01 ~]# systemctl restart autofs.service 10)确认现在光盘是没有挂载到/zz/dvd 上的,而且/zz目录中也没有dvd目录,命令如下。
[root@node01 ~]# mount | grep -v auto | grep zz
[root@node01 ~]# ls /zz
[root@node01 ~]#
11)下面访问/zz/dvd,命令如下。
[root@node01 ~]# ls /zz/dvd
AppStream EULA images RPM-GPG-KEY-redhat-beta
BaseOS extra_files.json isolinux RPM-GPG-KEY-redhat-release
EFI GPL media.repo TRANS.TBL
[root@node01 ~]# 12)因为访问这个目录时能触发自动挂载,系统自动创建/zz/dvd并把 /devcdrom挂载到这个目录上,再次验证挂载情况,命令如下。
[root@node01 ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
实战:下面练习自动挂载NFS共享文件夹,整个实验思路如下。
1)在node01上创建/bhome目录,然后创建用户 bob,家目录设置为/rhome/bob,用户的uid设置为2023,命令如下。
[root@node01 /]# mkdir /bhome
[root@node01 /]# useradd -u 2023 -d /bhome/bob bob
[root@node01 /]# echo 123456 | passwd --stdin bob
更改用户 bob 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node01 /]#
2)在node02上创建/bhome目录,然后创建用户bob,家目录设置为/bhome/bob。因为指定了-M选项,这个目录并没有被创建,用户的uid设置为2023,记住必须和 node01上的bob具有相同的uid,命令如下。
[root@node02 ~]# mkdir /bhome
[root@node02 ~]# useradd -u 2023 -d /bhome/bob -M bob
[root@node02 ~]# echo 123456 | passwd --stdin bob
更改用户 bob 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@node02 ~]#
[root@node02 ~]# ls /bhome/
[root@node02 ~]#
3)可以看到,bob的家目录/bhome/bob并没有被创建出来。在node02上切换到mary用户,命令如下。
[root@node02 ~]# su - bob
su: 警告:无法更改到 /bhome/bob 目录: 没有那个文件或目录
-bash-4.2$ exit
登出
[root@node02 ~]#
3)在node01上通过NFS把/bhome共享出去,编辑/etc/exports内容如下。
[root@node01 /]# cat /etc/exports
/share 192.168.182.0/24(rw,no_root_squash)
/bhome 192,168,182,0/24(rw,no_root_squash)
[root@node01 /]#
4)这样就把/bhome共享出去了,然后让此共享生效。
[root@node01 /]# exportfs -arv
exportfs: Invalid IP address 192,168,182,0/24
exportfs: Invalid IP address 192,168,182,0/24
exporting 192.168.182.0/24:/share
[root@node01 /]#
5)切换到node02上开始配置autofs,创建/etc/auto.master.d/bb.autofs,内容如下。
[root@node02 ~]# cat /etc/auto.master.d/bb.autofs
/bhome /etc/auto.bb
[root@node02 ~]#
6)下面创建/etc/auto.bb,内容如下。
[root@node02 ~]# cat /etc/auto.bb
bob -fstype=nfs,rw 192.168.182.200:/bhome/bob
[root@node02 ~]#
7)重启autofs,命令如下。
[root@node02 ~]# systemctl restart autofs.service 8)确认现在/bhome/bob是没有挂载任何东西的,命令如下。
[root@node02 ~]# mount | grep -v auto | grep bhome
[root@node02 ~]#
9)下面在node02上切换到bob,记住通过su - mary而不是通过su mary,命令如下。
[root@node02 /]# su - bob
[bob@node02 ~]$ pwd
/bhome/bob
[bob@node02 ~]$
我们知道su - bob,用户切换到bob的同时也会切换到bob的家目录,这样会触发 autofs,再次查看挂载情况,
相关文章:
RHEL8_Linux访问NFS存储及自动挂载
本章主要介绍NFS客户端的使用 创建FNS服务器并通过NFS共享一个目录在客户端上访问NFS共享的目录自动挂载的配置和使用 1.访问NFS存储 前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,所实现的是 Linux 和 Linux 之间的共…...
python 使用 AppiumService 类启动appium server
一、前置说明 在Appium的1.6.0版本中引入了AppiumService类,可以很方便的通过该类来管理Appium服务器的启动和停止。 二、操作步骤 import osfrom appium.webdriver.appium_service import AppiumService as OriginalServerfrom libs import pathclass AppiumSer…...
HbuilderX使用Uniapp+Vue3安装uview-plus
如果你是vue2版本想使用uniapp去配置uviewui库可以参考之前的文章 小程序的第三方ui库推荐较多的还是uview的,看起来比较美观,功能也比较完善,下面将提一下Vue3安装uview-plus库的教程 创建项目 安装 首先进入官网 uView-Plus 直接下载并导…...
【Android】Java NIO(New I/O)的`Selector`类来实现非阻塞的Socket监听
如果你不想使用循环来监听客户端的连接和数据,你可以使用Java NIO(New I/O)的Selector类来实现非阻塞的Socket监听。Selector类提供了一种选择一组已经就绪的通道的机制,这样你就不需要使用循环来等待连接和数据。 以下是使用Sel…...
『亚马逊云科技产品测评』在当前飞速发展的AI人工智能时代云服务技术哪家强?
授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 文章目录 引言一、亚马逊&阿里云发展历史介绍1.1 亚马逊发展历史1.2…...
经典神经网络——ResNet模型论文详解及代码复现
论文地址:Deep Residual Learning for Image Recognition (thecvf.com) PyTorch官方代码实现:vision/torchvision/models/resnet.py at main pytorch/vision (github.com) B站讲解: 【精读AI论文】ResNet深度残差网络_哔哩哔哩_bilibili …...
OpenCV-Python:DevCloud CodeLab介绍及学习
1.Opencv-Python演示环境 windows10 X64 企业版系统python 3.6.5 X64OpenCV-Python 3.4.2.16本地PyCharm IDE线上注册intel账号,使用DevCloud CodeLab 平台 2.DevCloud CodeLab是什么? DevCloud是一个基于云端的开发平台,提供了强大的计算…...
如何在Linux环境搭建本地SVN服务器并结合cpolar实现公网访问
目录 前言 1. Ubuntu安装SVN服务 2. 修改配置文件 2.1 修改svnserve.conf文件 2.2 修改passwd文件 2.3 修改authz文件 3. 启动svn服务 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射本地端口 5. 测试公网访问 6. 配置固定公网TCP端口地址 6.1 保留一个固定…...
C语言入门课程之课后习题之折半查找法
目录 1解题思路: 2代码所示: 3运行代码: 4习题不难,多刷题,练思路,最重要的不是学会了一道题,而是掌握其编程思想; 1解题思路: 折半查找法(half-interval…...
【CSP】202209-1_如此编码Python实现
文章目录 [toc]试题编号试题名称时间限制内存限制题目背景题目描述输入格式输出格式样例1输入样例1输出样例2输入样例2输出样例3输入样例3输出样例3解释子任务提示Python实现 试题编号 202209-1 试题名称 如此编码 时间限制 1.0s 内存限制 512.0MB 题目背景 某次测验后&#x…...
std::function
通过使用std::function,可以将不同类型的可调用对象封装成统一的格式,从而使用相同的接口进行调用;在设计回掉函数、事件处理 、函数对象等场景中十分有用。 ① 封装函数指针 ② 封装lambda ③ 封装成员函数等 1. 包含头文件 #include<fun…...
SQL Server——权限管理
一。SQL Server的安全机制 SQL Server 的安全性是建立在认证和访问许可两种安全机制之上的。其中.认证用来确定登录Sal Server 的用户的登录账户和密码是否正确.以此来验证其是否具有连接SQL Server 的权限;访问许可用来授予用户或组能够在数据库中执行哪…...
实例解析关于兔鲜登录tab栏切换案例详细讲解!
文章目录 文章目录 效果图展示 整体制作的一个思路 代码展示 技术细节 小结 效果图展示 点击账户登录显示登录的模块,点击二维码登录显示二维码的模块 整体制作的一个思路 点击哪个模块哪个显示,另外一个模块让它隐藏即可! 代码展示 <!…...
制作一个RISC-V的操作系统三-编译与链接
文章目录 GCCGCC简介GCC的命令格式gcc -Egcc -cgcc -Sgcc -ggcc -vGCC的主要执行步骤GCC涉及的文件类型针对多个源文件的处理 ELFELF介绍ELF文件格式ELF文件处理相关工具:Binutils(binary utility)readlelf -hreadelf -S或readelf -SW&#x…...
tmux工具--程序部署在服务器上持久化执行
程序部署在服务器上,想持久化执行 做以下操作: 在服务器上安装 tmux工具 对于 Ubuntu 或 Debian: sudo apt-get install tmux对于 CentOS 或 RHEL: sudo yum install tmux对于 Fedora: sudo dnf install tmux对于…...
C语言精选——选择题Day39
第一题 1. 有下面的定义,则 sizeof(s) 为多少? char *s "\ta\017bc"; A:9 B:5 C:6 D:7 答案及解析 C 本题涉及到了转义字符 \t 是水平制表符,算一个字节 \017 是表示八进制数&#…...
React 笔记 jsx
严格约定:React 组件必须以大写字母开头,而 HTML 标签则必须是小写字母。 React JSX JSX 是由 React 推广的 JavaScript 语法扩展。 用于表达组件的 特殊语法的 js 函数 要求标签必须闭合;返回的组件必须包裹在一个父标签内; …...
QMenu风格设计qss+阴影
Qt的菜单经常在软件开发中用到,默认的菜单效果都不符合设计师的要求,本篇介绍QMenu菜单的风格设计,包括样式表和阴影。 1.QMenu样式表的设计 首先看一个默认的菜单 void QGraphicsDropShadowEffectDemo::slotShowDialog() {qDebug() <&l…...
temu防窒息警示语贴哪里
防窒息警示语标签的位置选择是确保消费者在购买和使用产品时能够注意到潜在窒息风险的重要一环。本文将为您介绍一些关于防窒息警示语标签贴在哪里的建议,以帮助您选择合适的位置。 先给大家推荐一款拼多多/temu运营工具——多多情报通 多多情报通是拼多多的生意参…...
Maven——坐标和依赖
Maven的一大功能是管理项目依赖。为了能自动化地解析任何一个Java构件,Maven就必须将它们唯一标识,这就依赖管理的底层基础——坐标。将详细分析Maven坐标的作用,解释其每一个元素;在此基础上,再介绍如何配置Maven&…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
