【问题标题】:Is there a way to get the last /dev/sd device connected using Bash?有没有办法使用 Bash 连接最后一个 /dev/sd 设备?
【发布时间】:2022-10-20 07:50:33
【问题描述】:

假设我有 2 个存储设备,/dev/sda/dev/sdb(硬盘和 ssd)。连接另一个名称未知的存储设备后,我想获取并打印归属于它的名称(例如/dev/sdc/)。有没有办法以简单的方式做到这一点?我想通过比较在设备连接之前和之后运行的 2 个lsblk 命令的输出的更困难(且效率低下)的方法来做到这一点。值得注意的是,我没有使用 bash 的经验,我正在处理的项目要求我在连接存储设备后自动运行脚本。

【问题讨论】:

  • 如果您有一个等待存储连接的工具,那么您的方式就可以了。尽管我认为,您不需要 lsblk,但 cat /proc/partitions 也足够了。但是,如果你想永久运行这个东西,并且你想为所有新连接的存储调用一个脚本,我想你想要udevunix.stackexchange.com 充满了 linux/udev 大师,这个 stackoverflow 主要面向开发人员。
  • 谢谢@peterh,我自己就是一名开发人员,所以我习惯来这里寻求答案。然后将尝试进行unix堆栈交换。
  • 一种方法(残酷?)是分析 dmesg(1) 输出。插入设备时,日志会(或多或少)记录内核所做的一切。插入设备,然后输入dmesg。看最后几行...

标签: linux bash


【解决方案1】:

以前也有人问过类似的问题。您可以从this 指南中获得帮助。

我建议如果你是新手并且不需要这样做,请不要这样做

【讨论】:

  • 我只需要获取名称,以便将其作为参数传递给第二个脚本。我不想深入讨论分区、udev 规则等细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多