User Tools

Site Tools


aix:scripts_remove_paths

Remove unused disks paths on AIX

I use in my scripts a .env file to specify logpath and logname

root@nim /root/scripts > cat .env
# global variables for all scripts
export binpath=/root/scripts
export sn=`basename $0 | cut -d. -f1`
export HOSTNAME=`/usr/bin/hostname`
export logpath=/root/scripts/logs
export logname=$logpath/$sn.log
export configfile=$binpath/$sn.cfg
export destination="myemail@google.com"
export mail_undeliverable="myemail@google.com"
root@nim /root/scripts > cat ./remove_paths.sh
#!/bin/ksh93
#@(#) Remove unused adapter, paths and disks
# Version 1.0  08-2014
# Version 1.1  12-2023

dir=`dirname $0`
. $dir/.env

for device in $(lsdev -Cc disk | grep -vi available | awk '{print $1}')
do
  rmdev -dl $device
done

for device in $(lsdev -Cc adapter | grep -vi available | awk '{print $1}')
do
  rmdev -dl $device
done

# Specific for Dell/EMC disks LUNZ
for device in $(lsdev -Cc disk | sed 's/\ /:/g' | grep ':EMC:CLARiiON:FCP:MPIO:LUNZ:' | awk -F':' '{print $1}')
do
  rmdev -dl $device
done

# Try to enable all paths
lspath -s fai -F 'name parent connection' | while read name parent connection
do
  echo "# chpath -s ena -l $name -p $parent -w $connection"
  chpath -s ena -l $name -p $parent -w $connection
done

lspath -s mis -F 'name parent connection' | while read name parent connection
do
  echo "# chpath -s ena -l $name -p $parent -w $connection"
  chpath -s ena -l $name -p $parent -w $connection
done

for adapter in $(lspath | egrep -v "Available|Enabled" | awk '{print $3}' | sort -u)
do
  echo "# cfgmgr -l $adapter"
  cfgmgr -l $adapter
done

# delete path not available
for i in $(lsdev -Cc disk | awk '{print $1}')
do
  for j in $(lspath -l $i -F'status:parent:connection' | grep -vi enabled)
  do
    parent=$(echo $j | awk -F':' '{print $2}')
    conn=$(echo $j | awk -F':' '{print $3}')
    rmpath -l $i -p $parent -w $conn -d
  done
done
aix/scripts_remove_paths.txt · Last modified: 2023/12/13 14:55 by manu