Linux常见故障处置惩罚之df命令卡住不输出
一、配景分析朋侪咨询Linux体系下输入df -h命令后没有任何输出结果,博主的第一反应是/根分区磁盘空间满了,朋侪说cd等其他命令可以执行。博主又推测大概是有人误界说了命令别名,进一步确认命令卡住在等候输出页面。事后博主想起来大概是共享网络磁盘无法访问导致的,博主曾经遇到过一次nfs挂载设置到了/etc/fstab中,服务器重启之后因为nfs服务端挂掉了导致服务器无法启动。
https://img-blog.csdnimg.cn/direct/266cbad81da0403584c1d9ae0f9cdaad.png
为了验证博主的想法搭建了一个实行环境,环境分析如下:
[*]nfs-server操作体系:centos7.6
[*]nfs-client操作体系:centos6.5
二、验证方案
1、搭建NFS服务端
关于NFS服务的搭建我们可以参考博文Linux之centos7环境搭建NFS服务器。
# systemctl status nfs-server
https://img-blog.csdnimg.cn/direct/d225fcc81a4f433581240fb85be31a6b.png
2、NFS客户端挂载
客户端上安装showmount软件包,然后挂载nfs共享磁盘即可。
~# mount -t nfs 192.168.10.76:/publicdata /test
~# df -hT
https://img-blog.csdnimg.cn/direct/0c05016217594c56b89a581ffd23e334.png
3、模拟NFS server服务故障
为了模拟NFS server服务故障我们可以制止nfs服务或者通过防火墙阻断NFS服务。
# systemctl stop nfs-serve
4、验证df命令
当NFS服务挂掉的环境下,不但df命令、ls等查看磁盘目次的命令如果涉及到/挂载目次也会出现命令卡住没有输出的环境。df命令还可以通过ctrl+C命令制止回到shell制止,ls命令甚至无法通过ctrl+C或者ctrl+Z命令返回重新执行。
https://img-blog.csdnimg.cn/direct/73203aad76824bfbb8a617f89a9fa61a.png
https://img-blog.csdnimg.cn/direct/f1a7d11e0c5140809a0986aff94596bb.png
5、规复NFS server服务再次验证
NFS server服务规复后再次验证,df -hT命令执行的时候还是会卡住,等个几秒钟,nfs客户端会与NFS server重新建立连接,并正常输出信息。
~# 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
https://img-blog.csdnimg.cn/direct/d7b720935ee34c06ad5ba7e859cc254c.png
6、别名的大概性验证
如下测试结果,如果是正常的"df -h"没有输出不大概是别名的原因,因为别名不能包含空格,如果是错误输入df-h命令是可以通过别名实现如上效果的。固然为了确认别名的题目,我们还可以利用which命令验证确认是否为别名。
/# alias df-h=“echo “”;sleep 1000”
/# df-h
/# which df
/bin/df
https://img-blog.csdnimg.cn/direct/dd2a8a9812e64305b997d8c71a2c51b8.png
https://img-blog.csdnimg.cn/direct/4dcca48893664e77a1d9466e48901ea8.png
7、根分区满导致此征象的大概性验证
我们可以实验将跟分区磁盘空间写满,直到无法写入。固然显示100%利用,实际上不会是完整的刚好百分百,但是这种环境我们还是可以执行df -h命令。以是履历证根分区满不会导致此征象。
dd if=/dev/zero of=/fill_disk bs=100M count=100
/# dd if=/dev/zero of=/fill_disk7 bs=1k count=1https://img-blog.csdnimg.cn/direct/69b442bff83e4ce98d804f11321719ef.png
三、NFS server服务宕机的环境重启服务器验证
1、制止nfs server服务
# systemctl stop nfs-server
2、将nfs挂载写入到/etc/fstab
~# cat /etc/fstab |grep test
192.168.10.76:/publicdata /test nfs defaults 0 0
3、重启nfs客户端服务器
~# reboot
4、控制台登录验证
控制台登录验证对比发现nfs共享磁盘设置在/etc/fstab中会停留在如何页面数分钟,最终还是可以启动成功。如果没有在/etc/fstab中设置NFS共享磁盘主动挂载则很快启动完成。
https://img-blog.csdnimg.cn/direct/82aeba27f1d24fda8a2947756cb4f6c5.png
四、故障原因及处置惩罚步调
一、故障原因分析
如上实行所示,df命令卡住无输出的原因就是nfs共享磁盘无法访问导致。df命令不但会读取本地磁盘,也会读取挂载的其他恣意磁盘,当无法连接到长途的nfs服务的时候就会不停在等候nfs server服务回复消息。
二、建议处置惩罚步调
针对不同业务场景,建议如下:
[*]如果是对于熟悉的环境知道nfs服务所在所在,我们可以登录nfs server服务器启动nfs服务,重新执行命令等候结果输出;
[*]如果是不熟悉的陌生环境,建议先通过history命令查看历史挂载记录,查看/etc/fstab文件等确认大概的nfs server所在,然后登录nfs服务器启动nfs服务后重新挂载。
https://img-blog.csdnimg.cn/direct/1063256e96b945f5acf836f94e7ca84a.png
[*]如果是nfs服务器执行了迁徙调整,我们可以先取消nfs服务挂载,然后重新挂载新的nfs共享磁盘。
~# umount -a -t nfs
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]