首先,我要为标题中没有包含硬件细节而道歉。这是因为我正在寻找一个适用于所有 Linux 发行版的命令。
题:
我对 Linux 很陌生,不太了解,但是,是否可以检索以非 root 身份运行的硬盘驱动器序列号。我知道有一些命令可用于检索使用 sudo 运行的此信息。但是,我需要一种无需以 sudo 身份运行即可检索此信息的方法。
任何建议将不胜感激。
亲切的问候,
穆斯塔法
Ser*_*sov 19
在大多数当前发行版中,硬盘序列号存储在 udev 数据库中,无需 root 权限即可查询:
/sbin/udevadm info --query=property --name=sda
Run Code Online (Sandbox Code Playgroud)
(查找ID_SERIAL, ID_SERIAL_SHORT;还有/dev/disk/by-id/ata-*基于这些值的 ATA 驱动器的符号链接)。
udisks为这些数据提供了一个更高级别的接口等等(它还提供了对 SMART 属性的访问,而无需 root 权限,这对于调用而言是需要的,例如,smartctl直接)。
另一种通常有效的方法是:
ls -l /dev/disk/by-id/
Run Code Online (Sandbox Code Playgroud)
这是一个单行代码,可让您快速枚举驱动器和型号/序列号:
ls -l /dev/disk/by-id/ | grep scsi- | grep -v part | awk '{print $NF " " $(NF-2)}' | sed 's|../../||g' | sed 's/scsi-...._//g'
Run Code Online (Sandbox Code Playgroud)
或者对于远程机器:
ssh $host "ls -l /dev/disk/by-id/ | grep scsi- | grep -v part | awk '{print \$NF \" \" \$(NF-2)}' | sed 's|../../||g' | sed 's/scsi-...._//g'"
Run Code Online (Sandbox Code Playgroud)
然后,您可以进一步处理此输出。对于大多数驱动器类型,每行的第二个字符串是 MODEL_SERIAL。
| 归档时间: |
|
| 查看次数: |
15746 次 |
| 最近记录: |