削除する必要のあるSCSIディスクのリストがあります。リストはせいぜいランダムであり、時々変更されます。自分で作成した定義済みのリスト以外はすべて削除したい。とりあえず保持したいだけだとしましょう:
/dev/sda
/dev/sdb
私が実行する必要があるコマンドは次のとおりです。
"echo 1 > /sys/block/sdX/device/delete"
Xは削除するデバイスです。
私はbashスクリプトが得意ではないので、どこから始めればいいのか本当にわかりません。
要約すると、明確でないためにDVされないようにします。
事前に定義されたリストを除いて、システム上のすべてのsdXデバイスに対して「エコー1> / sys / block / sdX / device / delete」を実行する必要があります。
編集:以下の答えの後、これは私が使用することに決めたものです。「LocalDisks.txt」には「/ dev / sda」のような行が含まれている必要があります
#!/bin/bash
exclude=$(cut -d/ -f3 LocalDisks.txt)
for sysfile in /sys/block/sd* ; do
dev=$(basename $sysfile)
del=$sysfile/device/delete
if [[ $exclude == *$dev* ]] ; then
echo "Device $dev excluded"
elif [ ! -w $del ] ; then
echo "$del does not exist or is not writable"
else
echo 1 > $del
fi
done