linux – Ubuntu 12.04崩溃分析 – 崩溃时所有打开文件的奇怪二进制数据

几个小时前,我们在Ubuntu 12.04上遇到系统崩溃.我们检查了所有日志文件,并没有任何可疑的责任.

记录的最后一些东西是一些鸽舍活动.没有内核恐慌消息.没有.

这是我们在生产之前测试的新服务器(新硬件).而且因为它很难,我怀疑问题可能是由于一些有缺陷的硬件造成的.

我们已经运行了memtester而没有检测到任何问题.我很乐意听到其他硬件测试工具(机器有SSD).

无论如何,我想问你的是另一个.奇怪的是,在崩溃发生的每一个打开的文件中,我们发现下一个符号序列被写入其中:“@ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ …”.

例如,在我们得到的syslog日志文件中:

Apr 16 15:53:56 odyssey dovecot: pop3-login: Aborted login (auth failed,1 attempts): user=<info>,method=PLAIN,rip=46.29.255.73,lip=5.9.58.177
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ [these continues for about 1000 chars...] ^@^@^@^@Apr 16 15:55:12 odyssey kernel: imklog 5.8.6,log source = /proc/kmsg started.

我们在所有打开的文件中都有这些符号.这些包括:syslog,mail.log,kern.log,…
但也有一些由php脚本输出的日志在用户帐户(非root用户)的CRON中运行.

那么,任何想法为什么所有打开的文件都在崩溃期间写入了这些字符?这非常糟糕,因为崩溃损坏了许多文件(我们甚至不知道哪些其他文件可能会受到影响).我们怀疑崩溃时所有打开的文件(在写入模式下)都插入了所有这些符号.这是为什么?

BTW [如果它有帮助],系统在崩溃后自动重启,但Apache没有启动. / var / apache2 / * log中没有跟踪为什么apache没有启动的痕迹.运行“service apache2 start”后,它开始没有问题.此外,我们手动重启了机器,Apache也在重启时启动.但它没有在崩溃后开始,也没有报告错误.

多谢你们!

解决方法

那些^ @几乎肯定是二进制零.也就是说,xxd corruptfile | tail -3可能会发出如下内容:
#######0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
#######0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
#######0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

写信已通知内核,但内容从未刷新到磁盘.因此,在预期写入时文件被扩展,因此文件无意中稀疏.

如果您没有使用日记文件系统,这尤其可能,因为日志应该导致写入在未正确完成时回滚(因为它不是由于崩溃).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format=&#39;{{.LogPath}}&#39; &lt;container_name&gt; 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户