linux 故障处置通用流程-36计-28-37
- 在控制台重启主机;
- 在屏幕出现GRUB的启动菜单时按任意键;
- 选择要修改的Linux菜单,按“e”键;
- 再选中“kernel”的行,按“e”键;
- 在kernel所在行末尾输入“ init=/bin/bash”;
- 输入完成后,按回车,保存菜单;
- 使用修改好的菜单引导系统,按“b”键,以单用户模式临时引导系统;
- 进入单用户模式后,对系统故障进行修复。
029:进入紧急救援模式
- 在控制台重启主机,并用操作系统安装光盘引导;
- 出现boot提示符后输入:linux rescue;
- 选择语言;
- 选择键盘类型;
- 选择是否启用网络(如果启用网络,需根据程序提示配置IP地址等信息);
- 选择是否让系统查找硬盘上的Linux系统,选择“Continue”;
- 自动搜索当前已安装的Linux系统;
- 系统显示硬盘上的系统已经被找到,并挂载在/mnt/sysimage目录下;并提示可以使用 chroot /mnt/sysimage 命令进行环境切换;
- 进入单用户模式后,对系统故障进行修复。
030:查看服务器端口是否正常开启
- 执行命令:
#netstat -an | grep Port_Number
#netstat -tulpn
如果是系统服务,可同时查看服务状态:
#service Your_Service_Name status
- 执行以下命令查看当前网络连接数量:
listen状态的连接数:
$netstat -an|grep "^tcp" |awk '{print $6}'|sort -ir|uniq -c |grep LISTEN |awk '{print $1}'
established状态的连接数:
$netstat -an|grep "^tcp" |awk '{print $6}'|sort -ir|uniq -c |grep ESTABLISHED |awk '{print $1}'
close_wait状态的连接数:
$netstat -an|grep "^tcp" |awk '{print $6}'|sort -ir|uniq -c |grep CLOSE_WAIT |awk '{print $1}'
fin_wait_2状态的连接数:
$netstat -an|grep "^tcp" |awk '{print $6}'|sort -ir|uniq -c |grep FIN_WAIT_2 |awk '{print $1}'
time_wait状态的连接数:
$netstat -an|grep "^tcp" |awk '{print $6}'|sort -ir|uniq -c |grep -i time_wait |awk '{print $1}'
032:交换区使用情况检查
- 查看内存及交换空间使用情况
$free
- 查看交换空间设备使用情况
$cat /proc/swaps
- 查看交换区访问情况
$vmstat 2 10
此命令输出周期为2秒,共计10次。需注意其中的‘swap’列的si、so值。
033:文件句柄数调整
当系统已用的文件句柄数达到最大限值时(running out of file handles),操作系统日志会提示无法继续分配文件句柄:
- 通过堡垒机以root用户登录;
- 查看当前文件句柄数最大限值:
# cat /proc/sys/fs/file-max
- 查看当前文件句柄数使用情况:
# cat /proc/sys/fs/file-nr
第一列为当前已分配文件句柄数。
- 在线修改最大文件句柄数(临时)
-
echo 819200 > /proc/sys/fs/file-max
上述‘819200’仅为举例。通常file-max的缺省值为操作系统内存(单位:kb)的10%。(防止通过其中一个参数限制,然后无法打开文件,也需要对/proc/sys/fs/file-nr参数进行同步修改。)
- 永久修改最大文件句柄数:
将以下内容加入/etc/sysctl.conf配置文件,其中‘819200’为示例数据:
fs.file-max = 819200
验证步骤:
- 查看当前文件句柄数最大限值:
# cat /proc/sys/fs/file-max
- 查看当前文件句柄数使用情况:
# cat /proc/sys/fs/file-nr
3) 查看永久修改文件句柄最大限制是否生效:
# sysctl -p |grep file-max
034:主机启动时fstab中有错误配置
当/etc/fstab配置错误时,主机重启过程会中断并报错,如下截图所示:
- 在主机控制台输入root用户口令,登入系统;
- 执行以下命令,重新挂载根文件系统为可读写状态:
# mount -o remount,rw /
- 修改/etc/fstab文件中的错误配置:
# vi /etc/fstab
- 保存修改内容并退出,系统自动重启。
035:bond主备网卡切换
- 查看当前bond网卡信息
#ifconfig
#cat /proc/net/bonding/bond?
符号“?”表示bonding网卡的序号,通常为bond0、bond1等。
在/proc/net/bonding/bond? 文件中,可以看到当前网卡的主、备关系。
- 查看网卡配置文件
进入 /etc/sysconfig/network-scripts/ 目录,查看网卡配置文件:
ifcfg-bond0
ifcfg-eth?
符号“?”表示网卡序号,通常为ifcfg-eth0、ifcfg-eth1等。
- 将bond切换到备用网卡上
#ifconfig eth_主网卡 down
- 确认网卡及主机通讯情况
#ifconfig
#cat /proc/net/bonding/bond?
#route
#tail /var/log/messages
#ping 业务关联主机_IP
036:查看内核slab内存占用
查看当前kernel slab cache信息(排查使用objects或内存较多的名称)
#slabtop
#cat /proc/slabinfo
验证步骤:
从上述命令输出结果中,确认kernel slab cache中的资源占用情况。
037:清理系统内存中的cache和buffer
- 查看当前kernel slab cache信息
#slabtop
#cat /proc/slabinfo
- 刷新缓存
#sync
- 清理cache
可以有选择地进行清理:
清理pagecache:
echo 1 > /proc/sys/vm/drop_caches
清理dentries和inodes缓存:
echo 2 > /proc/sys/vm/drop_caches
清理pagecache、dentries和inodes缓存:
echo 3 > /proc/sys/vm/drop_caches
- 查看当前kernel slab cache信息
#slabtop
#cat /proc/slabinfo
验证步骤:
使用slabtop、free命令查看内存占用情况。
1、在清理内存之前,先执行 "sync" 命令刷新系统buffer;
2、在生产环境应慎用此命令:虽然清理缓存时影响应用程序上下文的可能性很小,但是最好在关闭应用程序后再行清理。