==== 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