Linux培训
达内IT学院

400-111-8989

3 个 Linux 运维典型问题,大牛告诉你解决思路!


作为一名合格的 Linux 运维工程师,一定要有一套清晰、明确的解决故障思路,当问题出现时,才能迅速定位、解决问题,这里给出一个处理问题的一般思路:

重视报错提示信息:每个错误的出现,都是给出错误提示信息,一般情况下这个提示基本定位了问题的所在,因此一定要重视这个报错信息,如果对这些错误信息视而不见,问题永远得不到解决。

查阅日志文件:有时候报错信息只是给出了问题的表面现象,要想更深入的了解问题,必须查看相应的日志文件,而日志文件又分为系统日志文件(/var/log)和应用的日志文件,结合这两个日志文件,一般就能定位问题所在。

分析、定位问题:这个过程是比较复杂的,根据报错信息,结合日志文件,同时还要考虑其它相关情况,最终找到引起问题的原因。

解决问题:找到了问题出现的原因,解决问题就是很简单的事情了。

从这个流程可以看出,解决问题的过程就是分析、查找问题的过程,一旦确定问题产生的原因,故障也就随之解决了。

结合上面介绍的 Linux 运维问题的解决思路后,下面达内linux培训小编挑选了6个比较典型的 Linux 运维问题,来看看是如何分析和解决的:

问题 1:文件系统破坏导致系统无法启动

Checking root filesystem

/dev/sda6 contains a file system with errors, check forced

An error occurred during the file system check

这个错误可以看出,操作系统 / dev/sda6 分区文件系统出现了问题,这个问题发生的机率很高,通常引起这个问题的原因主要是系统突然断电,引起文件系统结构不一致,一般情况下,解决此问题的方法是采用 fsck 命令,进行强制修复。

# umount /dev/sda6

# fsck.ext3 -y /dev/sda6

问题 2:“Argument list too long” 错误与解决方法

# crontab -e

编辑完后保存退出后,报错 no space left on device

根据上面的报错了解到是磁盘空间满了,那么首先是检查磁盘空间。

# df -h

查看到是 / var 磁盘分区空间已经达到 100%,至此定位了问题所在。是 / var 磁盘空间饱满导致,因为 crontab 会在保存时将文件信息写到 / var 目录下面,然而这个磁盘没有空间了,所以报错。

接着通过命令 du –sh * 命令检查 / var 目录下面的所有文件或者目录的大小,发现 / var/spool/clientmqueue 目录占用了 / var 整个分区大小的 90%,那么 / var/spool/clientmqueue 目录下的文件都是怎么产生的,能否删除,基本上都是邮件信息,可以删除。

# rm *

/bin/rm :argument list too long

当在 linux 系统中试图传递太多参数给一个命令时,就会出现 “argument list too long” 错误,这是 linux 系统一直以来都有的限制,查看这个限制可以通过命令 “getconf ARG_MAX” 来实现,

# getconf ARG_MAX

# more /etc/issue 查看版本

解决方法:

1、

# rm [a-n]* -rf

# rm [o-z]* -rf

2、使用 find 命令来删除

# find /var/spool/clientmqueue –type f –print –exec rm –f {} ;

3、通过 shell 脚本

#/bin/bash

RM_DIR=’/var/spool/clientmqueue’

cd $RM_DIR

for I in `ls`

do

rm –f $i

done

4、重新编译内核

需要手动增加内核中分配给命令行参数的页数,打开 kernel source 下面的 include/linux/binfmts.h 文件,找到如下行:

#denfine MAX_ARG_PAGES 32

将 32 改为更大的值,例如 64 或者 128,然后重新编译内核。

问题 3:inode 耗尽导致应用故障

客户的一台 Oracle 数据库如武器在关机重启后,Oracle 监听无法启动,提示报错 Linux error : No space left on device

从输出信息看出来是因为磁盘耗尽导致监听无法启动,因为 Oracle 在启动监听时需要创建监听日志文件,于是首先查看磁盘空间使用情况

# df -h

从磁盘输出信息可知,所有的分区磁盘空间都还有剩余不少,而 Oracle 监听写日志的路径在 / var 分区下,/var 下分区空间足够。

解决思路:

既然错误提示语磁盘空间有关,那就深入研究关于磁盘空间的问题,在 linux 系统中对磁盘空间的占用分为三个部分:第一个是物理磁盘空间,第二个是 inode 节点所占用的磁盘空间,第三个是 linux 用来存放信号量的空间,而平时接触较多的是物理磁盘空间。既然不是物理磁盘空间的问题,接着就检查是否是 inode 节点耗尽的问题,通过执行命令 “df -i” 查看可用的 inode 节点。由输出结果看出确实是因为 inode 耗尽导致无法写入文件。

可以通过下面的命令查看某个磁盘分区 inode 的总数

# dumpe2fs -h /dev/sda3 |grep ‘Inode count’

每个 inode 都有一个号码,操作系统用 inode 号码来区分不同的文件,通过‘ls -i’命令可以查看文件名对应的 inode 号。

如果要查看这个文件更详细的 inode 信息,可以通过 stat 命令来实现

# stat install.log

解决问题

# find /var/spool/clientmqueue/ -name “*” -exec rm -rf {} ;

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:2018 年超受欢迎 Linux 发行版有哪些?
下一篇:Linux系统学习窗口的正确打开方式

8个安全性超高的Linux发行版推荐

专科生来达内学Linux技术获18万年薪入职摩邑诚

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省