我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C++ NFS挂载及挂载命令

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C++ NFS挂载及挂载命令

挂载NFS

挂载命令

挂载NFS时,常用的命令比如:


#将远程目录挂载到本地/home/share目录下
mount -t nfs -o nolock 192.168.1.10:/tmp /home/share

在Linux 下可以用mount函数进行挂载:


bool Mount()
{
    string remotePath = m_remoteIP + ":" + m_remotePath;
    string localPath = m_localPath;
    string params = "nolock,soft,fg,tcp,timeo=5,retrans=1,rsize=4096,vers=3,addr=" + m_remoteIP;

    int ret = mount(remotePath.c_str(),
                    localPath.c_str(),
                    "nfs",
                    MS_SYNCHRONOUS,
                    params.c_str());

    if (ret != 0)
    {
        auto errInfo = errno;
        return false;
    }

    return true;
}

错误码

挂载失败时,常见错误码errno有:

#define EINVAL 22

#define EACCES 13

#define EPERM 1

#define EBUSY 16

#define ENOENT 2

挂载参数

参数 说明
rsize=n 读时最大字节数
wsize=n 写时最大字节数
timeo=n 客户端重传请求前等待时间,默认等待重传时间为60s
retrans=n 客户端返回错误前的重传次数。默认为重传3次。retrans与soft参数一起使用时才有效。
soft/hard 软挂载方式挂载系统,若NFS请求超时,则客户端向调用程序返回错误;
如果使用硬连接方式则客户端一直重新请求直至成功。默认为hard
bg/fg 设置挂载失败后的行为方式。
默认的fg方式将立刻退出返回错误状态,bg方式是退出前将产生一个子进程在后台继续尝试挂载
vers=xxx 设置版本
addr=xxx 设置服务地址
tcp/udp 设置协议,一般使用tcp,网络不稳定可以换udp
port=n 设置服务端口号
lock/nolock 选择是否使用NLM协议在服务器上锁文件。当选择nolock选项时,锁对于同一主机的应用有效,对不同主机不受锁的影响。默认为lock。

卸载

卸载函数有mountmount2,第二个可以加参数,所以一般情况下使用mount2进行强制卸载:


bool UnMount()
{
    return umount2(m_localPath.c_str(), MNT_FORCE) == 0);
}

如果m_localPath目录没有被挂载,则会返回错误

检查是否挂载

检查命令

Linux下使用命令检查nfs是否挂载成功的方式有很多,比如:

检查文件系统的磁盘空间占用情况 df -h


Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs              54.1M     50.8M      3.3M  94% /
devtmpfs                215.8M         0    215.8M   0% /dev
192.168.0.249:/nfs       59.6G      1.6G     57.9G   3% /mnt/udisk

查看挂载信息文件 cat /proc/mounts


ubi0:rootfs / ubifs rw,sync,relatime 0 0
devtmpfs /dev devtmpfs rw,relatime,size=220936k,nr_inodes=55234,mode=755 0 0
192.168.0.249:/nfs /mnt/udisk nfs rw,sync,relatime,vers=3,rsize=4096,wsize=8192,namlen=255,soft,nolock,proto=tcp,timeo=5,retrans=1,sec=sys,mountaddr=192.168.0.249,mountvers=3,mountproto=tcp,local_lock=all,addr=192.168.0.249 0 0

直接使用挂载命令 mount


ubi0:rootfs on / type ubifs (rw,sync,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=220936k,nr_inodes=55234,mode=755)
192.168.0.249:/nfs on /mnt/udisk type nfs (rw,sync,relatime,vers=3,rsize=4096,wsize=8192,namlen=255,soft,nolock,proto=tcp,timeo=5,retrans=1,sec=sys,mountaddr=192.168.0.249,mountvers=3,mountproto=tcp,local_lock=all,addr=192.168.0.249)

查看指定目录是否挂载点 mountpoint -d /mnt/udisk

#打印文件系统的主设备号和次设备号

0:21

功能实现

功能需求:

  • 检查目录是否挂载成功
  • 当NFS服务关闭时,检查结果也需要同步

经过测试,只有mountpoint 能完成第二点功能需求,所以直接使用shell命令来进行检查:


bool CheckMount()
{
    string shell = "mountpoint -d " + m_localPath;

    QProcess proc;
    proc.start(shell.c_str());
    if (!proc.waitForFinished(10000))
        return false;
    
    auto output = proc.readAll();
    return !output.isEmpty())
}

NFS服务

Linux下的NFS服务安装比较方便,Windows下常见的NFS服务软件可以使用haneWIN NFS Server

1. 下载地址:http://xiazai.jb51.net/202112/yuanma/nfsd_jb51.rar

2. 配置方法:打开目录下的exports文件,配置NFS服务目录,比如共享D盘下的NFSData目录:

D:\NFSData  -name:nfs -exec -maproot:0 -alldirs

  • name:设置挂载的目录名给客户端使用,比如mount -t nfs -o nolock 192.168.1.10:/nfs /home/share
  • maproot:将root权限开放给客户端
  • alldirs:将全部路径开放给客户端

到此这篇关于C++ NFS挂载的文章就介绍到这了,更多相关C++ NFS挂载内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C++ NFS挂载及挂载命令

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

AIX挂载NFS

AIX挂载NFS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。AIX挂载NFS,进行RMAN备份# mount nfsserver:/share /mnt/nfsmount:
2023-06-06

linux挂载命令是什么

今天小编给大家分享一下linux挂载命令是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,挂载就是利用一个
2023-06-29

Linux下如何挂载NFS共享

这篇文章主要介绍了Linux下如何挂载NFS共享,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。NFS是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP
2023-06-27

Windows上怎么挂载NFS共享

这篇文章主要介绍“Windows上怎么挂载NFS共享”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Windows上怎么挂载NFS共享”文章能帮助大家解决问题。img实验环境主机操作系统IP地址软件包
2023-06-28

linux怎么挂载nfs共享目录

在Linux中,可以使用以下步骤挂载NFS共享目录:1. 首先,确保你已经安装了`nfs-utils`软件包。如果没有安装,可以使用以下命令安装:```sudo apt install nfs-utils```2. 创建一个本地挂载点目录,
2023-09-14

WINDOWS2016想要使用NFS挂载,但是没有NFS服务,无法使用mount命令

需要安装一下两个服务,文件服务器和NFS服务器。还有一个NFS客户端要安装的图片,不知道为啥就是上传不了。。。博客有点问题。。。反正安装完了就可以使用mount了然后在cmd上就可以使用mount挂载了挂载NFSmount \\192.16
2023-06-04

Linux系统如何挂载NFS共享

这篇文章主要介绍Linux系统如何挂载NFS共享,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共
2023-06-28

CentOS 6 NFS 共享文件与挂载

https://09n.net/index.php/archives/3/CentOS6.8搭建nfs+mount实现远程挂载https://blog.csdn.net/weixin_38642130/article/details/845
2023-06-05

linux_U盘的挂载、卸载 (ubuntu虚拟机、mount命令、umount命令)

接上一篇:linux修改文件权限、文件所属用户、文件所属组,linux创建软链接、硬链接,linux软件安装和卸载,文件颜色代表意义 今天来给大家分享一下ubuntu虚拟机的U盘挂载和卸载以及一些相关问题,挂载又分为:自动挂载和手动挂载。手
2023-08-19

linux挂载硬盘命令是哪个

本篇内容主要讲解“linux挂载硬盘命令是哪个”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux挂载硬盘命令是哪个”吧!linux挂载硬盘命令是“mount”
2023-01-03

Linux系统下怎么挂载NFS共享

本文将为大家详细介绍“Linux系统下怎么挂载NFS共享”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统下怎么挂载NFS共享”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一
2023-06-28

Linux系统挂载命令mount怎么用

Linux系统挂载命令mount怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在Linux系统中要想将分区挂载到文件夹下可以使用mount命令,挂载之后将
2023-06-28

linux中怎么使用autofs挂载NFS共享

这篇文章将为大家详细讲解有关linux中怎么使用autofs挂载NFS共享,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先做点假设:假设有台 NFS 服务器 tree.mydatacenter.net
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录