有没有办法检测块设备(如/ dev / sda或/ dev / sdc)是否与本地磁盘(scsi或sata我的意思)或可移动USB磁盘相关?
我正在编写一个shell脚本,必须只检测本地磁盘阻塞设备,不包括任何可移动磁盘。
谢谢!
答案 0 :(得分:1)
使用lshw
:
lshw -class disk -class storage
并查找bus info
字符串。
答案 1 :(得分:0)
您可以使用Linux设备管理器udev。
查询每个块设备将显示有关它的一些信息,包括总线,您可以使用该信息来识别该设备是否为可移动USB设备。
这是脚本:
for device in /sys/block/sd*; do
device_info="$(udevadm info --query=property --path=$device)"
device_name=$(echo "$device_info" | perl -ne 'print "$1" if /^DEVNAME=(.*)/')
device_bus=$(echo "$device_info" | perl -ne 'print "$1" if /^ID_BUS=(.*)/')
echo "Device $device_name bus: $device_bus"
done
这是一个示例结果:
Device /dev/sda bus: ata
Device /dev/sdb bus: ata
Device /dev/sdc bus: usb