cat /proc/scsi/usb-storage/27
------------------
Host scsi27: usb-storage
Vendor: SanDisk
Product: Cruzer Blade
Serial Number: 4C530000230331109030
Protocol: Transparent SCSI
Transport: Bulk
Quirks: SANE_SENSE
これは、ペンドライブを接続するたびにホストcsi番号が変更され続けるためです。
答え1
使用lsblk
:
$ lsblk --output KNAME,SERIAL /dev/sdb
KNAME SERIAL
sdb 4CEDFB6D543AF360199308B2
同じデバイスで2回テストしましたが、常に同じシリアル番号が出ました。
答え2
私が使用するsmartctl
ツール:
# smartctl /dev/sda -i | grep Serial
Serial Number: S1D3LYBG290266
私は電子が人が読みやすくなるのでこれを好みますlsblk
が、bashスクリプトで必要な場合は役に立ちません。
答え3
多くの検索の最後に、他の人にも役立つより良いスクリプトを思いつきました。ペンドライブなどのリムーバブルデバイスのみが表示されます。このスクリプトは私のcentos7のすべてのユーザーに動作します。
#!/bin/bash
for C in `ls /sys/block/`; do
RE=`cat /sys/block/$C/removable`
if [ $RE == "1" ] ;then
#VENDOR=`/bin/udevadm info --name=/dev/$C | grep ID_VENDOR=|awk -F"=" ' { print $2}'`
#MODEL=`/bin/udevadm info --name=/dev/$C | grep ID_MODEL=|awk -F"=" ' { print $2}'`
#SERIAL=`/bin/udevadm info --name=/dev/$C | grep SERIAL_SHORT|awk -F"=" ' { print $2}'`
#echo $VENDOR-$MODEL"-"$SERIAL #print as per your taste
USB_SERIAL=`/bin/udevadm info --name=/dev/$C | grep ID_SERIAL=|awk -F"=" ' { print $2}'|awk -F"-" ' { print $1}'`
echo $USB_SERIAL #or just the default one
fi
done
JetFlash_Transcend_4GB_08XHIHH4