我有需要删除的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