Linux常见故障处理之df命令卡住不输出

一、背景说明

  朋友咨询Linux系统下输入df -h命令后没有任何输出结果,博主的第一反应是/根分区磁盘空间满了,朋友说cd等其他命令可以执行。博主又猜测可能是有人误定义了命令别名,进一步确认命令卡住在等待输出页面。事后博主想起来可能是共享网络磁盘无法访问导致的,博主曾经遇到过一次nfs挂载配置到了/etc/fstab中,服务器重启之后因为nfs服务端挂掉了导致服务器无法启动。
在这里插入图片描述
  为了验证博主的想法搭建了一个实验环境,环境说明如下:

  • nfs-server操作系统:centos7.6
  • nfs-client操作系统:centos6.5

二、验证方案

1、搭建NFS服务端

  关于NFS服务的搭建我们可以参考博文Linux之centos7环境搭建NFS服务器。

[root@s76 publicdata]# systemctl status nfs-server
在这里插入图片描述

2、NFS客户端挂载

  客户端上安装showmount软件包,然后挂载nfs共享磁盘即可。

[root@localhost]~# mount -t nfs 192.168.10.76:/publicdata /test
[root@localhost]~# df -hT
在这里插入图片描述

3、模拟NFS server服务故障

  为了模拟NFS server服务故障我们可以停止nfs服务或者通过防火墙阻断NFS服务。

[root@s76 publicdata]# systemctl stop nfs-serve

4、验证df命令

  当NFS服务挂掉的情况下,不仅df命令、ls等查看磁盘目录的命令如果涉及到/挂载目录也会出现命令卡住没有输出的情况。df命令还可以通过ctrl+C命令中断回到shell中断,ls命令甚至无法通过ctrl+C或者ctrl+Z命令返回重新执行。
在这里插入图片描述
在这里插入图片描述

5、恢复NFS server服务再次验证

  NFS server服务恢复后再次验证,df -hT命令执行的时候还是会卡住,等个几秒钟,nfs客户端会与NFS server重新建立连接,并正常输出信息。

[root@localhost]~# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 36G 2.0G 32G 6% /
tmpfs tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 ext4 291M 39M 238M 14% /boot
192.168.10.76:/publicdata nfs 56G 5.2G 51G 10% /test
在这里插入图片描述

6、别名的可能性验证

  如下测试结果,如果是正常的"df -h"没有输出不可能是别名的原因,因为别名不能包含空格,如果是错误输入df-h命令是可以通过别名实现如上效果的。当然为了确认别名的问题,我们还可以使用which命令验证确认是否为别名。

[root@localhost]/# alias df-h=“echo “”;sleep 1000”
[root@localhost]/# df-h
[root@localhost]/# which df
/bin/df
在这里插入图片描述
在这里插入图片描述

7、根分区满导致此现象的可能性验证

  我们可以尝试将跟分区磁盘空间写满,直到无法写入。虽然显示100%使用,实际上不会是完整的刚好百分百,但是这种情况我们还是可以执行df -h命令。所以经验证根分区满不会导致此现象。

dd if=/dev/zero of=/fill_disk bs=100M count=100
[root@localhost]/# dd if=/dev/zero of=/fill_disk7 bs=1k count=1在这里插入图片描述

三、NFS server服务宕机的情况重启服务器验证

1、停止nfs server服务

[root@s76 publicdata]# systemctl stop nfs-server

2、将nfs挂载写入到/etc/fstab

[root@localhost]~# cat /etc/fstab |grep test
192.168.10.76:/publicdata /test nfs defaults 0 0

3、重启nfs客户端服务器

[root@localhost]~# reboot

4、控制台登录验证

  控制台登录验证对比发现nfs共享磁盘配置在/etc/fstab中会停留在如何页面数分钟,最终还是可以启动成功。如果没有在/etc/fstab中配置NFS共享磁盘自动挂载则很快启动完成。
在这里插入图片描述

四、故障原因及处置步骤

一、故障原因分析

  如上实验所示,df命令卡住无输出的原因就是nfs共享磁盘无法访问导致。df命令不仅会读取本地磁盘,也会读取挂载的其他任意磁盘,当无法连接到远程的nfs服务的时候就会一直在等待nfs server服务回复消息。

二、建议处置步骤

  针对不同业务场景,建议如下:

  • 如果是对于熟悉的环境知道nfs服务所在地址,我们可以登录nfs server服务器启动nfs服务,重新执行命令等待结果输出;
  • 如果是不熟悉的陌生环境,建议先通过history命令查看历史挂载记录,查看/etc/fstab文件等确认可能的nfs server地址,然后登录nfs服务器启动nfs服务后重新挂载。
    在这里插入图片描述
  • 如果是nfs服务器执行了迁移调整,我们可以先取消nfs服务挂载,然后重新挂载新的nfs共享磁盘。

[root@localhost]~# umount -a -t nfs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录——删除二叉搜索树中的节点(Leetcode450)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

JavaSE—泛型

1 泛型定义和基本使用 泛型是JDK1.5以后才有的, 可以在编译时期进行类型检查,且可以避免频繁类型转化! Test public void test1() {List list new ArrayList();list.add("ZhangSan");list.add(1);//集合使用 取出元素Object obj…

R语言数据探索和分析22-使用随机森林和聚类算法探索和预测健康状况

一、研究背景 在两个实验中,使用了一组综合性的生物统计数据来探索和预测健康状况(特别是疾病的发生)。实验的核心在于应用高级数据分析技术,具体包括随机森林分类和聚类分析,来洞察和预测个体的健康状况。首先&#…

【十大排序算法】选择排序

选择就像是在谱曲,每个决定就是一个音符,只有将它们有序地安排在一起,才能奏响美妙的乐章。 文章目录 一、选择排序的思想二、选择排序的发展历程三、选择排序具象化四、选择排序算法实现五、选择排序的特性推荐阅读 一、选择排序的思想 选…

详解大厂实时数仓建设V4.0

一、实时数仓建设背景 1. 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切,需要实时数仓的能力来赋能。传统离线数仓的数据时效性是 T1,调度频率以天为单位,无法支撑实时场景的数据需求。即使能将调度频…

参数传递和剪枝,从修剪二叉树谈起

669. 修剪二叉搜索树 - 力扣(LeetCode) 一、参数传递 Java中的参数传递方式只有一种,那就是值传递。如果我们传的是基本数据类型,那么函数接收到的就是该数据的副本,如果我们传的是对象,那么函数接收到的就…

【Qt知识】部分QWidget属性表格

QWidget是Qt库中所有图形用户界面组件的基类,它提供了大量属性以供自定义和配置控件的行为和外观。下面列出了一些主要的QWidget属性及其作用。 属性 作用 accessibleName 控件的辅助技术名称,用于无障碍访问。 accessibleDescription 控件的辅助技…

CSS真题合集(一)

CSS真题合集(一) 1. 盒子模型1.1 盒子模型的基本组成1.2 盒子模型的实际大小1.3 盒子模型的两种类型1.4 设置盒子模型1.5 弹性盒子模型 2. BFC2.1 主要用途2.2 触发BFC的方法2.2 解决外边距的塌陷问题(垂直塌陷) 3. 响应式布局3.1…

接口自动化框架封装思想建立(全)

httprunner框架(上) 一、什么是Httprunner? 1.httprunner是一个面向http协议的通用测试框架,以前比较流行的是2.X版本。 2.他的思想是只需要维护yaml/json文件就可以实现接口自动化测试,性能测试,线上监…

spring aop小记

一、aop概念 面向切面编程 参考:https://blog.csdn.net/lhj520cb/article/details/125820513 常用术语解释(根据代码理解的): Aspect(切面):Advice 通知(即增强)和 Pointcut 切点的结合。(数学上可以理…

【Android面试八股文】Java异常机制中,异常Exception与错误Error区别是什么?

Java异常机制中,异常Exception与错误Error区别是什么? 这道题想考察什么? 在开发时需要时候需要自定义异常时,应该选择定义Excption还是Error? 编写的代码触发Excption或者Error分别代表什么? 考察的知识点 Java异常机制 考生应该如何回答 在Java中存在一个 Throwa…

Git - 详解 创建一个新仓库 / 推送现有文件夹 / 推送现有的 Git 仓库 到私有Gitlab

文章目录 【推送现有文件夹】详细步骤指令说明Git 全局设置设置Git全局用户名设置Git全局电子邮件地址 推送现有文件夹1. 进入现有文件夹2. 初始化Git仓库并设置初始分支为main3. 添加远程仓库4. 添加所有文件到暂存区5. 提交更改6. 推送代码到远程仓库并设置上游分支 创建一个…

ESXi内安装OpenWrt

目录 0、前言 1、环境 2、转换格式 3、创建虚拟机 4、OpenWrt设置 5、单臂流量测试 6、总结 0、前言 前几天在ESXi中先安装了PVE,然后在PVE中安装OpenWrt,没有来得及深入测试,仅仅作为安装和熟悉PVE的过程。后来转念一想为什么不在ES…

CS1061 “HtmlHelper”未包含“Partial”的定义,并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS1061 “HtmlHelper”未包含“Partial”的定义,并且找不到可接受第一个“HtmlHelper”类型参数的可访问扩展方法“Partial”(是否缺少 using 指令或程序集引用?) 14_Views_Message_E…

找嵌入式软件工作,freertos要掌握到什么程度?

对于嵌入式软件工程师来说,掌握RTOS(实时操作系统)的程度并不是决定性因素,而更重要的是工程思维和解决问题的能力。我这里有一套嵌入式入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习嵌入式…

Angular封装高德地图组件实现输入框搜索,地图点击选地点

Angular封装高德地图组件实现输入框搜索,地图点击选地点(Angular17版本) 话不多说直接上代码 创建一个独立组件 html代码: <div style"position: relative;"><input #searchInput nz-input placeholder"请输入地址"/><div #mapContaine…

力扣 48.旋转图像

题目描述&#xff1a; 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],…

CLion配置

下载环境&#xff1a;MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net 解压后找一个位置存放&#xff0c;一般放在和ide同一目录&#xff0c;方便查找 个人习惯配置调整&#xff1a; 项目创建 修改ide解码形式 项目右下角一般默认是utf8 文件编码改…

VS2019 QT无法打开 源 文件 “QTcpSocket“

VS2019 QT无法打开 源 文件 "QTcpSocket" QT5.15.2_msvc2019_64 严重性 代码 说明 项目 文件 行 禁止显示状态 错误(活动) E1696 无法打开 源 文件 "QTcpSocket" auto_pack_line_demo D:\vs_qt_project\auto_pack_line_de…

【区块链】truffle测试

配置区块链网络 启动Ganache软件 使用VScode打开项目的wordspace 配置对外访问的RPC接口为7545&#xff0c;配置项目的truffle-config.js实现与新建Workspace的连接。 创建项目 创建一个新的目录 mkdir MetaCoin cd MetaCoin下载metacoin盒子 truffle unbox metacoincontra…