linux系统异常,学习如何通过系统日志进行初步排查

38 篇文章 2 订阅
36 篇文章 2 订阅
近日发现有一台服务器在桌面运行的程序不知何故没有了


一开始以为是服务器自动重启了,但是使用w命令看了下,系统并没有重启,反而


从上面的图中可以看到当前系统时间是11:33:23,系统已经运行了79天,系统有7个用户,平均负载
既然没有重启那为什么桌面上什么也没有了呢?
正常情况系我都是在桌面打开终端窗口后在里面执行的程序。


既然想知道为什么会这样,那么就需要知道当时系统做了什么操作。
查看如下 两个日志对我们了解系统当时做了什么操作有帮助。
/var/log/messages
记录系统整体信息,一般来讲各类报错信息都会在这个日志中记录。
/var/log/cron
记录系统定制任务的日志。


首先我要定位系统异常的时间点,很简单,我打开我的程序的目录,找到运行日志打开一看


可以直接看出来到7:20就没有了,这说明程序运行到这个时间点之后就没有在运行,基本上就是这个时间点异常了。
那么系统日志我们就按着这个时间点去看。
首先打开cron日志找到对应的时间点,看了下似乎没什么异常之处。


接下来看messages日志,找到对应的时间点之后发现了异常。
从7:20开始系统发生异常,然后桌面终端的情况被记录到/var/spool/abrt/ccp-2017-11-09-07:20:02-5142.new/coredump
然后被程序调用的网卡被卸载掉,紧接着系统写了一个mail。


上面的日志中有一个error,根据这个报错百度了下(这里我要吐槽百度,怀念google),大概意思是error 4的意思是用户态程序内存访问越界。
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7。
bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址
error number是4, 转成二进制就是100, 即bit2=1, bit1=0, bit0=0, 按照上面的解释,我们可以得出这条信息是由于用户态程序读操作访问越界造成的。
但是具体是什么程序造成的我还没弄清楚,但是用户态程序也就是我运行的程序也就那么几个,逐个排查后应该可以得到结论。后续在慢慢弄。
本文的重点是学习了如何根据系统日志分析问题所在。



  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值