Linux系统故障排查思路实践教程(下)

Linux系统故障排查思路实践教程(上)https://blog.csdn.net/xiaochenXIHUA/article/details/155874383?spm=1001.2014.3001.5501

一、su命令切换用户问题解决

su命令切换用户问题现象:

直接提示"su: warning: cannot change directory to /home/oracle: Permission denied. su failed to execute /bin/bash:Permission denied"。

解决思路:

《1》用户目录的权限检查;

《2》su程序执行权限检查;

《3》程序依赖的共享库权限检查;

《4》SELinux问题导致;

《5》系统根空间问题;

bash 复制代码
#解决思路逐一验证
#1-用户目录的权限检查
ll -a /home | grep oracle

#2-su程序执行权限检查
ll -a /bin/su

#3-程序依赖的共享库权限检查(都能够找到,没有红色标识则表示正常);
ldd /bin/su

#4-SELinux问题导致;
getenforce
cat /etc/selinux/config

#5-系统根空间问题(【/】【/boot】【/usr】【/var】空间是否已满);
df -hT
stat /

解决方法:

根目录权限问题导致,修改根目录权限即可。

bash 复制代码
#定位到问题是由于根目录的权限不对导致的,因此需要将根目录的权限修改与正常系统的一致即可
chmod 555 /

二、"Too many open files"问题解决

问题现象:

应用程序的日志显示如"java.io.IOException: Too many open files"。

解决思路:

《1》404找不到文件,我们进入服务器检查这个网站及其内容是否存在(存在则排除);

《2》查看Tomcat的运行日志【/usr/local/tomcat8】(了解真正的报错原因【提示打开文件过多】);

《3》针对资源问题首先想到的就是ulimit(ulimit主要是用来限制进程对资源的使用情况的,它支持各种类型的限制)【资源限制的配置文件是【/etc/security/limits.conf】】(注意:若在【/etc/security/limits.conf】里面设置了进程数,在centos系统中还要查看【/etc/security/limits.d/ 20-nproc.conf 】是以这个文件的为主)。

《4》查看【/etc/security/limits.conf】配置修改的时间与【tomcat】程序启动的时间来确定生效情况。

bash 复制代码
#查看资源配置文件的详情命令
stat /etc/security/limits.conf

#查看tomcat程序的启动时间
ps -eo pid,lstart,etime | grep tomcat的PID

线上Linux服务器的优化设置、系统安全与网络安全策略https://coffeemilk.blog.csdn.net/article/details/149913938

|--------|--------------|------------------------------|
| 序号 | ulimit参数 | 说明 |
| 1 | -a | 显示当前系统所有的limit资源信息。 |
| 2 | -H | 设置硬资源限制,一旦设置不能增加。 |
| 3 | -S | 设置软资源限制,设置后可以增加,但是不能超过硬资源设置。 |
| 4 | -C | 最大的core文件的大小,以 blocks 为单位。 |
| 5 | -f | 进程可以创建文件的最大值,以blocks 为单位。 |
| 6 | -d | 进程最大的数据段的大小,以Kbytes 为单位。 |
| 7 | -m | 最大内存大小,以Kbytes为单位。 |
| 8 | -n | 可以打开的最大文件描述符的数量。 |
| 9 | -s | 线程栈大小,以Kbytes为单位。 |
| 10 | -P | 管道缓冲区的大小,以Kbytes 为单位。 |
| 11 | -u | 用户最大可用的进程数。 |
| 12 | -v | 进程最大可用的虚拟内存,以Kbytes 为单位。 |
| 13 | -t | 最大CPU占用时间,以秒为单位。 |
| 14 | -l | 最大可加锁内存大小,以Kbytes 为单位。 |
[ulimit主要是用来限制进程对资源的使用情况]

解决方法:

由于ulimit限制的添加时间晚于tomcat最后一次的启动时间,而在此期间内, tomcat服务一直未重启过,操作系统也一直未重启过,那么ulimit资源限制对于tomcat来说始终是不生效的。

bash 复制代码
#1-先将tomcat的进程杀死
killall -9 java

#2-重启tomcat
/usr/local/tomcat8/bin/startup.sh

三、Linux网络故障问题解决

3.1、检查网线状态

方法一: 直接到机房里检查网线两端是否都亮灯,普通服务器的话应该是绿灯常亮为正常,交换机绿灯闪烁表示正在传输数据。

**方法二:**可以通过命令【ethtool 网卡名称】来查看指定网卡的链路是否物理连通(显示结果最后的【Link detected】后面的值显示【yes】表示网卡的物理连通)。

3.2、检查网卡状态

bash 复制代码
#查看网卡的驱动加载是否正常
ethtool -i ens33

lsmod

ifconfig

lspci|grep Ethernet

3.3、检查网卡的配置文件

在红帽系的系统中网卡的配置文件是在【/etc/sysconfig/network-scripts/】目录下以【ifcfg】开头的文件中(如ifcfg-ens33)。

RHEL/Centos7.0以及之后的系统版本中,所有网络设置和管理都统一由NetworkManager服务来维护,相对于旧的【/etc/init.d/network】脚本管理方式, NetworkManager是动态的、事件驱动的网络管理服务。

bash 复制代码
#查看【NetworkManager】服务状态
systemctl status NetworkManager


#若还是需要使用之前的【/etc/init.d/network】则需要将【NetworkManager】服务关闭
systemctl stop NetworkManager

3.4、检查DNS解析文件

Linux的DNS解析配置文件是【/etc/resolve.conf】,可以在这个文件里面配置。

注意:【NetworkManager】服务会自动管理DNS解析文件(即:体现在在DNS配置文件配置了内容重启后配置的内容会丢失,不生效)。

3.5、检查系统防火墙

bash 复制代码
#1-查看防火墙的所有规则
iptables -L -n

#2-配置SELinux的配置文件
#2.1-查看当前SELinux的状态
getenforce
#2.2-临时关闭SELinux
setenforce 0
#2.3-临时启用SELinux
setenforce 1
#2.4-永久禁用SELinux(将文件中的【SELINUX=enforcing】修改为【SELINUX=disabled】后保存退出并重启系统生效)
more /etc/selinux/config

Linux的软件防火墙iptables

SELinux配置与防火墙端口放开操作

3.6、检查网络连通性以及路由信息

bash 复制代码
#1-通过ping命令查看网络连通性
ping coffeemilk.blog.csdn.net

#2-通过route命令检查系统路由表信息是否正确
route -n

#3-检查远程路由信息
mtr coffeemilk.blog.csdn.net
traceroute coffeemilk.blog.csdn.net

#4-查看主机的端口
netstat -antlp

#5-查看指定域名或IP的指定端口是否放开
telnet traceroute coffeemilk.blog.csdn.net 80
telnet 192.168.1.2 80
相关推荐
coder4_3 小时前
Linux 数据同步全攻略:NFS 共享、inotify+rsync 与 sersync 实战指南
linux·rsync·文件共享·nfs·数据同步·inotify·实时备份
Lynnxiaowen3 小时前
今天我们继续学习kubernetes内容Helm
linux·学习·容器·kubernetes·云计算
weixin_521431123 小时前
Docker容器技术
运维·docker·容器
Bigan(安)3 小时前
【奶茶Beta专项】【LVGL9.4源码分析】08-theme主题管理
linux·c语言·mcu·arm·unix
Evan芙3 小时前
nginx+php部署walle,发布php站点
运维·nginx·php
小汐睡着了3 小时前
解决虚拟机VMware与宿主机网络不通的问题-error
linux·网络·redhat
xdxghy09213 小时前
mini centos7+k3s部署(镜像拉取解决版)
linux·运维·服务器·阿里云·运维开发
了一梨3 小时前
外设与接口:按键输入 (libgpiod)
linux·c语言
浅水鲤鱼4 小时前
虚拟机VMware Workstation Pro 25H2设置中文界面
运维