showmount -e 输出不正确记录,包含历史挂载cli
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,问题:一台Solaris 10主机用户已经不再使用,服务器关机前检查NFS共享状况,确保已经没有用户连接到该主机。通过命令"showmount -e"检查客户端服务器的连接,发现还有大量的连接列表。但
千家信息网最后更新 2025年02月02日showmount -e 输出不正确记录,包含历史挂载cli
问题:
一台Solaris 10主机用户已经不再使用,服务器关机前检查NFS共享状况,确保已经没有用户连接到该主机。
通过命令"showmount -e"检查客户端服务器的连接,发现还有大量的连接列表。但是与用户确认,用户说已经断开了连接。
解决方法:
=======================================================
Solaris主机
/etc/rmtab文件中会记录用户连接的状况。NFS Client异常中断可能造成了umount nfs共享点失败,导致/etc/rmtab中留存了不正确的记录。
可以通过下列命令,重启NFS服务并清空记录。
svcadm disable svc:/network/nfs/server:defaultcat /dev/null > /etc/rmtabsvcadm enable svcs:/network/nfs/server:defaultsvcs|grep nfs 检查服务启动状态
=======================================================
在Linux平台也会发生类似的问题。
man rpc.mountd(8) says:The rmtab File ... Note, however, that there is little to guarantee that the contents of /var/lib/nfs/rmtab are accurate. A client may continue accessing an export even after invoking UMNT. If the client reboots without sending a UMNT request, stale entries remain for that client in /var/lib/nfs/rmtab.
可以通过下列命令解决。
# service nfs stop# cat /dev/null > /var/lib/nfs/rmtab# service nfs start
=======================================================
替代检查方案:
因为nfs client的意外重启,可能造成"showmount -a"命令的输出不可信。
为了确保用户已无连接,需要寻找其他命令进行检查。
NFS协议是通过RPC机制进行文件传输的,RPC在文件传输发包阶段还是会使用TCP/UDP进行传输。
尝试通过"netstat -an|grep IP"命令检查所以网络连接,检查输出列表,确定对端IP地址没有用户IP后再关闭服务器。
参考文档2: https://blog.csdn.net/wangpeng138375/article/details/8169071 Sun的RPC服务 ONC RPC(Open Network Computing Remote Procedure Call)是一个由Sun Microsystem公司开发的开源的RPC框架。它是用于UNIX系统的RPC事实标准。ONC RPC已经被证明是一项高性能的技术。包括Solaris,AIX,HP UX,Linux等在内的大多数UNIX平台都支持RPC服务。 RPC其实也是种C/S的编程模式,其工作过程如图2-3所示,大致包含以下几个步骤: (0) 服务器启动,它向所在主机上的端口映射器(port mapper)注册自身。客户然后启动,它调用clnt_create,该函数则与服务器主机上的端口映射器联系,以找到服务器的临时端口。clnt_create函数还建立一个与服务器的TCP连接。 (1) 客户调用一个称为客户端存根(Client stub)的本地过程(存根由rpcgen工具生成)。对于客户来说,客户程序存根看起来像是它想要调用的真正的服务器过程。存根的目的在于把待传递给远程过程的参数打包,可能的话把它们转换成某种标准格式,然后构造一个或多个网络消息。把客户提供的参数打包成一个网络消息的过程称为集结(marshaling)。客户程序的各个例程和存根通常调用RPC运行时函数库中的函数。 (2) 这些网络消息由客户程序存根发给远程系统。通常需要一次陷入本地内核的系统调用(例如write或是sendto)。 (3) 这些消息传送到远程系统,通常使用TCP或UDP协议。 (4) 一个服务器存根(server stub)过程一直在远程系统上等待客户的请求。它从这些网络消息中解散(unmarshaling)出参数。 (5) 服务器程序存根执行一个本地过程调用以激活真正的服务器函数,传递给该函数的参数是它从来自客户的网络消息中解散出来的。 (6) 当服务器过程完成时,它向服务器程序存根返回其返回值。 (7) 服务器存根在必要时对返回值作转换,然后把它们集结到一个或多个网络消息中,以便发送回客户 (8) 这些消息通过网络传送回客户。 (9) 客户程序存根从本地内核中读出这些网络消息(如read或recvfrom)。 (10)对返回值进行可能的转换后,客户程序存根最终返回客户函数 |
服务
客户
服务器
存根
消息
网络
过程
函数
用户
程序
检查
命令
主机
系统
参数
文件
端口
传输
输出
内核
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
鄠邑区软件开发找哪家
明日之后游戏哪个服务器好
重庆仟渔网络技术有限公司
盘龙区品牌软件开发市场价
国开网络安全管理
数据库系统和文件系统
汉南专业的软件开发中心
文登远通网络技术有限公司
在线数据库模拟器
网络安全薪水低
地震数据库系统技术规范
服务器 买
华魂网络技术有限公司怎么样
网络安全和服务哪个好
数据库介绍手册
怎么用服务器搭建宝塔
网信办 网络技术保障岗
全国网络安全和信息化法规
无锡软件开发外包公司有哪些
服务器异常问题及解决
怎么注册阿里云服务器
椰子视频提示连接不到服务器
剑灵龙组男数据库
网络安全和服务哪个好
手机怎么抓取js数据库
中国移动通信网络技术
服务器接入显示器
3g网络技术课程
核心业务与数据库的连接应用功能
php 数据库连接代码