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

2024-06-03 10:20

本文主要是介绍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

这篇关于Linux常见故障故障处理之df命令卡住不输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026712

相关文章

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py