-
以下内容仅当本人学习备忘之用,如有侵权,请联系删除。
for i in `rpm -qa`; do rpm -V $i &> /dev/null || echo $i; done
查询RPM版本信息,防止病毒修改
找到故障现象直接表现,基本上能找到故障问题。
故障举例:无法通过ssh登录系统?
ssh他是一个用户态的应用程序,来回的传送指令,同时它会用到网络、tcp连接、存储方面的,他自身还有一些认证机制。
查看它发生时间和频率,是不固定的发生,还是固定那个时间段发生,分析是不是业务使用高负载时间段,明确这个故障,源端、客户端有没有其他方法登录ssh。
1.ssh -v查看客户端debug信息
2.采集信息分析,有没有可能高负载时候,ssh无法连接
rceslogd服务分拣和转发日志 ,/var/log/secure只存储着sshd服务端的信息,没有客户端日志。
/var/log/dmesg里面存储的是上次启动
sosreport --batch 自动输出的tar包,包含收集来的日志信息
收集了有启动、块设备、内核、pci等等的相关日志。
这些是sosreport执行的命令,来搜集相关的日志信息。
使用各种方法,提出各自问题接近问题的原因。
熟悉内部逻辑,开辟新的方向,验证可能的因素。
案例网站:https://access.redhat.com
man命令
硬件故障
modprobe是加载和卸载内核模块,-r参数是卸载相关联的模块。
dmesg是从启动到当前,系统内核模块存储到缓冲buff内核日志。
启动故障的排查
进入单用户模式
进入救援模式
使用镜像启动救援模式,注意镜像版本不得小于当前系统版本
文件系统故障
- /proc/mounts 查询文件变成只读
- tune2fs 查看超级块信息
- dumpe2efs 查看数据块信息
-
e2fsck 检查ext2、ext3、ext4等文件系统的正确性
-
利用空间未释放的问题,可以恢复误删除文件,先找到文件进程pid,然后在/proc/[pid]/fd/下找到文件,拷贝出来。
-
注意:修复必须先umount
-
status正常时候有三个,有问题会提示
- 一个报错DID都是硬件故障
网络故障
-
tcpdump参数 -i 指定网卡 -s 指定数据包 -w 抓包结果以二进制形式存储到文件 -r 解析抓包的文件内容 -nn以数字形式显示结果,尽量使用二进制方式抓包信息比较完整,使用wireshark查看二进制文件。
应用故障
- 查询应用的依赖库是否缺失,应用的依赖库和系统的库发生冲突或者名称重复,需要隔离,解决是不同用户运行不通的应用和容器化,yum源尽量使用一个不能用不同版本。
- strace命令追踪使用https://www.cnblogs.com/machangwei-8/p/10388883.html