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

前端之家收集整理的这篇文章主要介绍了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  ................

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

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

猜你在找的Linux相关文章