iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++ NFS挂载及挂载命令
  • 613
分享到

C++ NFS挂载及挂载命令

2024-04-02 19:04:59 613人浏览 安东尼
摘要

挂载NFS 挂载命令 挂载NFS时,常用的命令比如: #将远程目录挂载到本地/home/share目录下 mount -t nfs -o nolock 192.168.1.10:

挂载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挂载内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C++ NFS挂载及挂载命令

本文链接: https://www.lsjlt.com/news/160768.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • C++ NFS挂载及挂载命令
    挂载NFS 挂载命令 挂载NFS时,常用的命令比如: #将远程目录挂载到本地/home/share目录下 mount -t nfs -o nolock 192.168.1.10:...
    99+
    2022-11-12
  • NFS搭建及挂载
    引言 1.概述 NFS是一种基于TCP/IP 传输的网络文件系统协议。通过使用NFS协议,客户机可以像访问本地目录一样访问远程服务器中的共享资源NAS存储: NFS服务的实现依赖于RPC (Remot...
    99+
    2023-09-01
    网络 linux 服务器
  • AIX挂载NFS
    AIX挂载NFS,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。AIX挂载NFS,进行RMAN备份# mount nfsserver:/share /mnt/nfsmount: ...
    99+
    2023-06-06
  • Windows 挂载 NFS磁盘 【全】
      Linux 安装NFS服务 # 安装nfs软件yum install -y nfs-utils rpcbind# 配置共享目录及相关信息vim /etc/exports# 输入内容 需要对配置信息进行解释说明/nfs *(insec...
    99+
    2023-09-10
    linux 服务器 运维
  • linux挂载命令是什么
    今天小编给大家分享一下linux挂载命令是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在linux中,挂载就是利用一个...
    99+
    2023-06-29
  • Windows上怎么挂载NFS共享
    这篇文章主要介绍“Windows上怎么挂载NFS共享”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Windows上怎么挂载NFS共享”文章能帮助大家解决问题。img实验环境主机操作系统IP地址软件包...
    99+
    2023-06-28
  • Linux下如何挂载NFS共享
    这篇文章主要介绍了Linux下如何挂载NFS共享,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。NFS是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP...
    99+
    2023-06-27
  • Armbian挂载硬盘(以及自动挂载)
    (一)Filesystem 文件系統size 文件大小Used 使用空间Mounted on 挂载的目录 、查看系统所检测到的磁盘,这里的 sda1检测到的硬盘但是没有被挂载(注意:这里sda1 是’1’ 而不是’L’,有些可能是sdb1...
    99+
    2023-09-17
    linux 运维 centos 服务器
  • WINDOWS2016想要使用NFS挂载,但是没有NFS服务,无法使用mount命令
    需要安装一下两个服务,文件服务器和NFS服务器。还有一个NFS客户端要安装的图片,不知道为啥就是上传不了。。。博客有点问题。。。反正安装完了就可以使用mount了然后在cmd上就可以使用mount挂载了挂载NFSmount \\192.16...
    99+
    2023-06-04
  • ORA-27054 NFS问题解决 AIX 挂载NFS文件
    ASMCMD [+back/backup] > cp EDCRAWDATA_201307.dmp /bk01copying +back/backup/EDCRAWDATA_201307.dmp -&g...
    99+
    2022-10-18
  • Linux系统如何挂载NFS共享
    这篇文章主要介绍Linux系统如何挂载NFS共享,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共...
    99+
    2023-06-28
  • linux怎么挂载nfs共享目录
    在Linux中,可以使用以下步骤挂载NFS共享目录:1. 首先,确保你已经安装了`nfs-utils`软件包。如果没有安装,可以使用...
    99+
    2023-09-14
    linux
  • CentOS 6 NFS 共享文件与挂载
    https://09n.net/index.php/archives/3/CentOS6.8搭建nfs+mount实现远程挂载https://blog.csdn.net/weixin_38642130/article/details/845...
    99+
    2023-06-05
  • linux挂载硬盘命令是哪个
    本篇内容主要讲解“linux挂载硬盘命令是哪个”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux挂载硬盘命令是哪个”吧! li...
    99+
    2023-01-03
    linux
  • linux_U盘的挂载、卸载 (ubuntu虚拟机、mount命令、umount命令)
    接上一篇:linux修改文件权限、文件所属用户、文件所属组,linux创建软链接、硬链接,linux软件安装和卸载,文件颜色代表意义 今天来给大家分享一下ubuntu虚拟机的U盘挂载和卸载以及一些相关问题,挂载又分为:自动挂载和手动挂载。手...
    99+
    2023-08-19
    linux ubuntu 服务器
  • Linux系统下怎么挂载NFS共享
    本文将为大家详细介绍“Linux系统下怎么挂载NFS共享”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“Linux系统下怎么挂载NFS共享”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-28
  • Linux中利用mount命令进行挂载
    mount mount命令用于挂载Linux系统之外的文件。 挂载是指将硬件设备的文件系统和Linux系统中的文件系统,通过指定目录(挂载点)进行关联。 参数 参数说明-h帮助文档-V显示版本-a挂载...
    99+
    2023-09-09
    linux 运维 服务器
  • Linux系统挂载命令mount怎么用
    Linux系统挂载命令mount怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在Linux系统中要想将分区挂载到文件夹下可以使用mount命令,挂载之后将...
    99+
    2023-06-28
  • 第十节 挂载NFS 网络文件系统
    本章节将介绍如何挂载NFS 网络文件系统,为后面的主机编译生成的ARM Linux 应用传输到开发板做准备。 网络文件系统简介 网络文件系统,常被称为NFS(Network File System),...
    99+
    2023-10-25
    网络 服务器 linux ubuntu
  • openwrt 挂载硬盘NFS共享,非SMB共享
    问题背景:给软路由添加文件共享服务,多设备可用,samba插件装不上,又看到NFS性能更好,便研究了下怎么设置。由于网上相关资料参差不齐,在设置过程中也是十分困难,故写一篇博客记录一下,帮助下有相同困扰的朋友。 详细步骤: 首先将硬盘格式化...
    99+
    2023-10-10
    linux 运维 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作