0

Have a problem with my script, don't want to run same procedure 200 times with changing LUN number. Remove the multipath device from ALL paths to the LUN, run echo 1 > /sys/bus/scsi/devices/${H:B:T:L}/delete (Where H = host:B = bus:T = target:L = lun) For example, 2:0:3:1 till 2:0:3:49

Let's check our LUNs:

lsscsi


[2:0:3:33]   disk    NETAPP   LUN C-Mode       9700  /dev/sdbt
[2:0:3:34]   disk    NETAPP   LUN C-Mode       9700  /dev/sdbv
[2:0:3:35]   disk    NETAPP   LUN C-Mode       9700  /dev/sdbw
[2:0:3:36]   disk    NETAPP   LUN C-Mode       9700  /dev/sdby
[2:0:3:37]   disk    NETAPP   LUN C-Mode       9700  /dev/sdca
[2:0:3:38]   disk    NETAPP   LUN C-Mode       9700  /dev/sdcc
[2:0:3:39]   disk    NETAPP   LUN C-Mode       9700  /dev/sdce
[2:0:3:40]   disk    NETAPP   LUN C-Mode       9700  /dev/sdcg
[2:0:3:41]   disk    NETAPP   LUN C-Mode       9700  /dev/sdci
[2:0:3:42]   disk    NETAPP   LUN C-Mode       9700  /dev/sdck
[2:0:3:43]   disk    NETAPP   LUN C-Mode       9700  /dev/sdcm
[2:0:3:44]   disk    NETAPP   LUN C-Mode       9700  /dev/sdco
[2:0:3:45]   disk    NETAPP   LUN C-Mode       9700  /dev/sdcp

Script to clean up:

for IP in {1...45} ; do 'echo 1 > /sys/bus/scsi/devices/2:0:3:$IP/delete'; done

Getting error:

-bash: echo 1 > /sys/bus/scsi/devices/2:0:3:$IP/delete: No such file or directory

Another try:

for IP in {1...45} ; do "echo 1 > /sys/bus/scsi/devices/2:0:3:$IP/delete"; done

Getting error:

-bash: echo 1 > /sys/bus/scsi/devices/2:0:3:{1...45}/delete: No such file or directory

How to isolate $IP to make it works in that request?

flexman
  • 1
  • 1

1 Answers1

0

You have {1...45}, but the syntax seems to be {1..45}. https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Brace-Expansion

Tero Kilkanen
  • 36,796
  • 3
  • 41
  • 63