Linux 诊断脚本

标签 linux diagnostics

有大量的 Linux 诊断工具可供使用,其中许多都有非常明显的需要查找的内容。

例如,hdparm -I /dev/sda可以告诉您您的驱动器已锁定,但其格式为:

Security: 
...
        not     locked

如果那个“不”不存在,那么它就被锁定了。

如果有一个工具能够检查每个驱动器并检查它们是否被锁定,以及其他数百万个可能出错的地方,那就太好了。

是否有任何东西可以做到这一点,至少部分如此?

我想要一些功能更全面的东西,作为运行标准 Linux 命令的单个脚本。有人知道这样的事情吗?

谢谢。

最佳答案

您可以做一些非常简单的事情,使用循环在每个驱动器上调用 hdparm ,然后 grep 所需的信息(如果我理解正确的话)。像下面这样的简单操作将返回每个驱动器的锁定状态:

#!/bin/sh

for i in /dev/sd?; do 
    drvstat="$(sudo hdparm -I $i | grep locked)"
    printf " %s  :  %s\n" $i "$drvstat"
done

注意:如果您没有 sudo 权限,请删除 sudo 并以 root 身份运行脚本。

输出

$ bash ./scr/stack/chksdlocked.sh
 /dev/sda  :    not     locked
 /dev/sdb  :    not     locked
 /dev/sdc  :    not     locked
 /dev/sdd  :    not     locked

关于Linux 诊断脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820671/

相关文章:

linux - 在特定的 vlan 中添加 Linux 机器

linux - 使用 sed 或替代函数提取文本行中 $ 和 < 之间的值

node.js - 为重新创建的站点运行 `azure site log tail` 时出现未经授权的访问

.net - 用于测量操作时间的最合适的性能计数器类型是什么?

linux - 为什么每次从内核模块读取时 CR3 寄存器内容都不同?

c - windows linux bash 上的 GCC

linux - 无法解决连接超时-Hadoop-1.2.1 NameNode和DataNode无法启动; SecondaryNameNode端口22连接超时

visual-studio - 此 Azure 部署错误是什么意思?

Android 诊断模式 - 如何启用它?

.net - 灵活的跟踪查看器(用于 etl 文件和运行时跟踪)