【发布时间】:2022-10-20 07:50:33
【问题描述】:
假设我有 2 个存储设备,/dev/sda 和 /dev/sdb(硬盘和 ssd)。连接另一个名称未知的存储设备后,我想获取并打印归属于它的名称(例如/dev/sdc/)。有没有办法以简单的方式做到这一点?我想通过比较在设备连接之前和之后运行的 2 个lsblk 命令的输出的更困难(且效率低下)的方法来做到这一点。值得注意的是,我没有使用 bash 的经验,我正在处理的项目要求我在连接存储设备后自动运行脚本。
【问题讨论】:
-
如果您有一个等待存储连接的工具,那么您的方式就可以了。尽管我认为,您不需要 lsblk,但
cat /proc/partitions也足够了。但是,如果你想永久运行这个东西,并且你想为所有新连接的存储调用一个脚本,我想你想要udev。 unix.stackexchange.com 充满了 linux/udev 大师,这个 stackoverflow 主要面向开发人员。 -
谢谢@peterh,我自己就是一名开发人员,所以我习惯来这里寻求答案。然后将尝试进行unix堆栈交换。
-
一种方法(残酷?)是分析 dmesg(1) 输出。插入设备时,日志会(或多或少)记录内核所做的一切。插入设备,然后输入
dmesg。看最后几行...