Linux系统黑客,传统意义上的。多时候栖身C库和内核交界处。
文件系统损坏,是导致系统启动失败比较常见的原因。文件系统损坏,比较常见的原因是分区丢失和文件系统需要手工修复。 我们讨论下有关的修复方案。
initrd丢失、损坏或者没有正常工作,是导致系统启动失败比较常见的原因。 如何解决这类问题呢?重新做initrd即可。那么,具体怎么操作呢?我们讨论下。这里我们主要是围绕阿里云的实例问题展开。
grub损坏,是导致系统启动失败比较常见的致因之一,重新安装即能修复。但是系统没有启动,怎么重新安装gurb呢?有哪些要注意的事项?
引子 曾经搞过一个尴尬的案例。排查过一个CPU打满的问题。因为问题是在凌晨出现,而且非常随机。所以我们就准备了一个脚本,用来捕获占用CPU高的线程。但尴尬的是,问题复现了,我们的脚本偏偏在问题复现的时候,没有记录。
网络应用的逻辑一般都是集中在两端。所以端到端的排查思路是解决问题的重要思路。排查ssh问题也是如此。 那么,怎么让ssh两端输出更多信息呢? 如何启动调试选项? ssh和sshd都有配置选项和命令行选项来启动调试。
扩容失败或者系统重启后分区丢失,需要文件系统推定分区位置。我们这里给出一个自动化的工具
本文档主要的目的是要揭下磁盘存储逻辑结构的神秘面纱,与此同时,我们也介绍一些常见工具和数据结构。 我们讨论里涉及的操作,如果你有Linux虚拟机可用,则尽可以大胆尝试。对于透彻理解我们讨论的主题,亲自动手尝试是必须的。
本文档主要的目的是要揭下磁盘存储逻辑结构的神秘面纱,与此同时,我们也介绍一些常见工具和数据结构。 我们讨论里涉及的操作,如果你有Linux虚拟机可用,则尽可以大胆尝试。对于透彻理解我们讨论的主题,亲自动手尝试是必须的。
如何使用systemd在系统关闭时运行脚本?请看这里。
系统不能启动,也可能是因为grub损坏。那么,如何排查和诊断是不是grub损坏呢?如果是,又如何修复呢?
Iptables在内核网络栈放置了钩子。因此,妥善利用Iptables,可以探查网络包在内核中的处理信息。这对于排查和诊断无疑非常有用。但是,如何实施这个方案呢?有没有简易方案?
升级了下系统,而后运行SystemTap脚本失败。原因竟然是升级了kernel-debuginfo包所致。
strace是个宅男,强力手段局限于单机之内。wireshark对包的进出条分缕析,但是对于包的后半生却缺少足够的盯梢能力。但现在是云起潮涌的时代,举目所见,分布式比比皆是。那么,在此情形下如何发挥两个强大工具的能力呢?
grub-install不能处理/dev/xvda这样的路径,需要重装grub时怎么处理呢?
突然发现Java程序无法启动。或者内核升级后Java程序无法启动。那么,很可能是内核Stack Clash补丁导致的。
如何利用经典UNIX工具列出正在读写的进程并且排序之?
对于通过JNI使用Java的应用,比如使用JNI来调用JVM。给JVM传递参数,环境变量JAVA_TOOL_OPTIONS很可能是你唯一的可选项。
事件发生的时刻,往往是排查、诊断过程中作出推定和构建因果链的关键。这里我们介绍下sar、last和dmesg工具的、有用的时间戳选项。
如果通过ps列出CPU消耗高或者内存消耗高的线程,如何统计线程消耗的总的CPU或者内存,请看此短文。
Linux系统设备/dev/random,因其可能阻塞在其上的读操作,有可能引致Java程序/进程异常,这是一个老问题,但是偶尔还是会遇到。为什么会这样以及如何解决类似问题,就在这篇短文里。
以黑箱方式完全依赖工具来进行数据恢复,所需时间和恢复的结果都难以估计。以专家或者专业方式进行数据恢复,技能和成本又太高。那么,数据恢复有没有较为合适的简易方案呢?我们以处理过的实际案例作答。
在分布式场景下,无论是调优、排查、还是诊断,仅仅依靠经验是远远不够的。必须自觉以理性态度,采用科学方法,并且充分使用黑客技巧,才能解决疑难问题。本文以黑客工具R为例,简单介绍传统的统计技术在排查和诊断中的功用。