天天看点

Linux 系统故障排查思路简析

处理linux系统故障的思路:

    1.重视错误提示信息。

    2.查阅日志文件 。message (系统日志) 服务的日志 error(应用日志)

    3.分析,定位问题。

    4.解决问题。

    忘记root密码?

        重置:centos5或者6    启动加载grub引导菜单时 按esc 找到当前系统引导选项。

        按方向键找到需要的系统引导内核,按 “e“ 进入编辑状态。

        然后通过方向键选中带有kernel指令的行 继续按"e" 在行尾价格空格添加‘single’ 修改完成后

        按回车键进入上一级菜单。然后按"b".进入单用户模式, passwd   输入2次相同的密码。

        然后重新启动系统 (reboot   或是  init 3)

        重置centos7 下的密码:

            同样进入 kernel行尾添加 init=/bin/sh

            ctrl +x   启动shell引导,进入单用户模式。

            挂载根分区:

            mount  -o remount,rw /

            如果系统开启了 selinux 需要在根分区创建 autorelabel文件 (touch /.autorelabel)

            passwd  输入2次一样的密码

            重新启动:  exec  /sbin/init    

    linux 启动不了?

    援救模式启动系统。

        模拟故障: 修改 /etc/fstab  # \mv /etc/fstab /etc/fstab.bak

        启动系统:出现错误;

        Starting system logger: Can't open or create /var/run/syslogd.pid.  Can't write pid .

        解决方法: 在光驱中放入系统盘。用系统盘重新引导启动。

            进入修复模式:Rescue installed system

            启动到shell最终进入   bash-4.1#    命令提示符下:

            可以查看系统分区情况: # fdisk -l

            查看根分区的具体位置: tune2fs -l /dev/sda2 | more

            (/dev/sda2这个参数根据具体分区情况 查找到/ 目录 因为fstab在根目录下)

            找到根分区后挂载根分区。然后重构 fstab文件  

            重新启动系统。看是否读取fstab成功。

    文件系统受损(一般在频繁读写的时候出现断电。容易造成文件系统错误)

        如何查看文件体统类型:

        1. file -s /dev/sda2

        2.  mount

        3.  df -T /dev/sda2

        4.  more /etc/fstab

    如果系统不能修复就需要手动修复了:

     1.卸载 分区 umount

     2.  修复  fsck.ext4 -y /dev/sda5

Linxu网络问题?

     1.网络硬件异常。(网线,网卡,路由器,交换机)

     2.检查网卡是否正常工作(网卡配置文件是否正确)

     3.检查DNS设置  /etc/resolv.conf    /etc/hosts(域名解析服务冲突)

     4.服务是否正常打开。可以通过telnet或者netstat命令查看服务是否正常。

     5.访问权限是否打开,从本机iptalbes 防火墙,linux内核强制访问控制策略selinux。

     6.局域网主机之间联接是否正常,可以通过ping自身ip。ping局域网其它主机IP,ping网关

        地址确定局域网连接正常。

    查看网络路由信息。动态监测 : 

    mtr  域名或ip

    traceroute 域名或ip

    检查服务是否正常:例如sshd 服务:

     # telnet  192.168.1.123 22

    (成功进入telnet后 。如何退出? ctrl + ]   进入telnet> quit 退出 

    检查局域网主机之间联机是否正常:

        ping  ip   | telnet ip port

    错误解析: 一般操作文件系统时。例如 执行 mkdir 时 出现:“Read-only file system“

        可能是文件系统数据块出现不一致导致的,也有可能是磁盘故障造成的。

        对于简单的错误,文件系统一般可自行修复,当遇到致命错误无法修复时,文件系统为了保证数据一致性和安全,会暂时屏蔽文件系统的写操作,将文件系统变为只读,进而出现了上面的“Read-only file system”现象。

        解决: fsck命令修复

        卸载 分区。umount

        可以查看 文件所占用的pid  :  fuser  /

        执行 fsck   (fsck会自动识别文件系统类型)

    文件权限问题:

        # su - swa

        su: warning: cannot change directory to /home/swa: Permission denied

        su: /bin/bash: Permission denied

        查看 /home/下的权限:

           # ls -al

        drwxr-xr-x.  3 root root 4096 Jan 29 04:03 .

        drw-rw-rw-. 24 root root 4096 Jan 29 01:41 ..

        drwx------   2 swa  swa  4096 Jan 29 04:03 swa 

        这里发现 。。  目录没有x (执行权限)

        # chmod  755 .. (修改权限)

        成功切换登录。

        还可以通过 stat  查看 权限

         stat ..

          File: `..'

          Size: 4096            Blocks: 8          IO Block: 4096   directory

        Device: 802h/2050d      Inode: 1046530     Links: 3

        Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)

        Access: 2017-01-29 04:03:28.585978590 +0800

        Modify: 2017-01-29 04:03:08.505176624 +0800

        Change: 2017-01-29 04:03:08.505176624 +0800

    服务启动问题: 启动不了服务:

        可以查看 磁盘空间时候写满。或者 innode 是否写满。

        服务启动的时候,会写入日志。如果磁盘满了,日志文件写入不了。服务启动不了。

本文转自 swallow_zys  51CTO博客,原文链接:http://blog.51cto.com/12042068/1897993,如需转载请自行联系原作者