optimize the script

Hi,

I have this following script below. Its searching a log file for 2 string and if found then write the strings to success.txt and If not found write strings to failed.txt . if one found and not other...then write found to success.txt and not found to failed.txt.

I want to optimize this script in a better way, say using awk or anyother way in shell scripting.

Can anyone help?

thanks

Amit

========Script===========

#!/bin/tcsh
echo "\nImages successfully built:" > /users/amvarma/success.txt
echo "--------------------------" >> /users/amvarma/success.txt

echo "\nImages failed to build:" > /users/amvarma/failed.txt
echo "--------------------------" >> /users/amvarma/failed.txt

##### Scan c3560 log ####
echo "Scan c3560 log\n"

v1=`fgrep "cp c3560-ipbase-mz /tftpboot/amvarma/c3560-ipbase-mz" /users/amvarma/c3560-log.txt`
v2=`fgrep "cp c3560-ipservices-mz /tftpboot/amvarma/c3560-ipservices-mz" /users/amvarma/c3560-log.txt`

if [ -n "$v1" ] && [ -n "$v2" ]; then
echo "c3560-ipbase-mz" >> /users/amvarma/success.txt
echo "c3560-ipservices-mz">> /users/amvarma/success.txt
elif [ -n "$v1" ] && [ -z $v2 ]; then
echo "c3560-ipbase-mz" >> /users/amvarma/success.txt
echo "c3560-ipservices-mz">> /users/amvarma/failed.txt
elif [ -z "$v1" ] && [ -n "$v2" ]; then
echo "c3560-ipbase-mz" >> /users/amvarma/failed.txt
echo "c3560-ipservices-mz">> /users/amvarma/success.txt
elif [ -z "$v1" ] && [ -z "$v2" ]; then
echo "c3560-ipbase-mz" >> /users/amvarma/failed.txt
echo "c3560-ipservices-mz">> /users/amvarma/failed.txt
else
echo ""
fi

##scan c3560 crypto log##
echo "Scan c3560 crypto log\n"
v1=
v2=

v1=`fgrep "cp c3560-ipbasek9-mz /tftpboot/amvarma/c3560-ipbasek9-mz" /users/amvarma/c3560-crypto-log.txt`
v2=`fgrep "cp c3560-advipservicesk9-mz /tftpboot/amvarma/c3560-advipservicesk9-mz" /users/amvarma/c3560-crypto-log.txt`
v3=`fgrep "cp c3560-ipservicesk9-mz /tftpboot/amvarma/c3560-ipservicesk9-mz" /users/amvarma/c3560-crypto-log.txt`

if [ -n "$v1" ] && [ -n "$v2" ] && [ -n $v3 ]; then
echo "c3560-ipbasek9-mz" >> /users/amvarma/success.txt
echo "c3560-advipservicesk9-mz">> /users/amvarma/success.txt
echo "c3560-ipservicesk9-mz" >> /users/amvarma/success.txt
elif [ -n "$v1" ] && [ -n $v2 ] && [ -z $v3 ]; then
echo "c3560-ipbase-mz" >> /users/amvarma/success.txt
echo "c3560-advipservicesk9-mz">> /users/amvarma/success.txt
echo "c3560-ipservicesk9-mz">> /users/amvarma/failed.txt
elif [ -n "$v1" ] && [ -z $v2 ] && [ -n $v3 ]; then
echo "c3560-ipbase-mz">> /users/amvarma/success.txt
echo "c3560-advipservicesk9-mz">> /users/amvarma/failed.txt
echo "c3560-ipservicesk9-mz">> /users/amvarma/success.txt
elif [ -z "$v1" ] && [ -z $v2 ] && [ -z $v3 ]; then
echo "c3560-ipbase-mz">> /users/amvarma/failed.txt
echo "c3560-advipservicesk9-mz">> /users/amvarma/failed.txt
echo "c3560-ipservicesk9-mz">> /users/amvarma/failed.txt
else
echo ""
fi

## End ##

##### Scan c3560e log #####
echo "scan c3560e log\n"
v1=
v1=`fgrep "cp c3560e-universal-mz /tftpboot/amvarma/c3560e-universal-mz" c3560e-log.txt`
#echo $v1

if [ -z "$v1" ]; then
echo "c3560e-universal-mz">> /users/amvarma/failed.txt
else
echo "c3560e-universal-mz">> /users/amvarma/success.txt
fi

#### Scan c3560e Crypto log ####
echo "scan c3560e log\n"
v1=
v1=`fgrep "cp c3560e-universalk9-mz /tftpboot/amvarma/c3560e-universalk9-mz" c3560e-crypto-log.txt`
#echo $v1

if [ -z "$v1" ]; then
echo "cp c3560e-universalk9-mz">> /users/amvarma/failed.txt
else
echo "cp c3560e-universalk9-mz">> /users/amvarma/success.txt
fi

## End ###

###### Scan c3750 log ########

echo "Scan c3750 log\n"
v1=
v2=

v1=`fgrep "cp c3750-ipbase-mz /tftpboot/amvarma/c3750-ipbase-mz" c3750-log.txt`
v2=`fgrep "cp c3750-ipservices-mz /tftpboot/amvarma/c3750-ipservices-mz" c3750-log.txt`

#echo $v1 "\n"
#echo $v2 "\n"

if [ -n "$v1" ] && [ -n "$v2" ]; then
echo "c3750-ipbase-mz" >> /users/amvarma/success.txt
echo "c3750-ipservices-mz">> /users/amvarma/success.txt
elif [ -n "$v1" ] && [ -z $v2 ]; then
echo "c3750-ipbase-mz" >> /users/amvarma/success.txt
echo "c3750-ipservices-mz">> /users/amvarma/failed.txt
elif [ -z "$v1" ] && [ -n "$v2" ]; then
echo "c3750-ipbase-mz" >> /users/amvarma/failed.txt
echo "c3750-ipservices-mz">> /users/amvarma/success.txt
elif [ -z "$v1" ] && [ -z "$v2" ]; then
echo "c3750-ipbase-mz" >> /users/amvarma/failed.txt
echo "c3750-ipservices-mz">> /users/amvarma/failed.txt
else
echo ""
fi

# scan c3750 crypto log #
echo "Scan c3750 crypto log\n"
v1=
v2=
v3=

v1=`fgrep "cp c3750-ipbasek9-mz /tftpboot/amvarma/c3750-ipbasek9-mz" /users/amvarma/c3750-crypto-log.txt`
v2=`fgrep "cp c3750-ipservicesk9-mz /tftpboot/amvarma/c3750-ipservicesk9-mz" /users/amvarma/c3750-crypto-log.txt`
v3=`fgrep "cp c3750-advipservicesk9-mz /tftpboot/amvarma/c3750-advipservicesk9-mz" /users/amvarma/c3750-crypto-log.txt`

if [ -n "$v1" ] && [ -n "$v2" ] && [ -n $v3 ]; then
echo "c3750-ipbasek9-mz">> /users/amvarma/success.txt
echo "c3750-ipservicesk9-mz">> /users/amvarma/success.txt
echo "c3750-advipservicesk9-mz" >> /users/amvarma/success.txt
elif [ -n "$v1" ] && [ -n $v2 ] && [ -z $v3 ]; then
echo "c3750-ipbasek9-mz">> /users/amvarma/success.txt
echo "c3750-ipservicesk9-mz">> /users/amvarma/success.txt
echo "c3750-advipservicesk9-mz" >> /users/amvarma/failed.txt
elif [ -n "$v1" ] && [ -z $v2 ] && [ -n $v3 ]; then
echo "c3750-ipbasek9-mz">> /users/amvarma/success.txt
echo "c3750-ipservicesk9-mz">> /users/amvarma/failed.txt
echo "c3750-advipservicesk9-mz" >> /users/amvarma/success.txt
elif [ -z "$v1" ] && [ -n $v2 ] && [ -n $v3 ]; then
echo "c3750-ipbasek9-mz">> /users/amvarma/failed.txt
echo "c3750-ipservicesk9-mz">> /users/amvarma/failed.txt
echo "c3750-advipservicesk9-mz">> /users/amvarma/failed.txt
elif [ -z "$v1" ] && [ -z $v2 ] && [ -z $v3 ]; then
echo "c3750-ipbasek9-mz">> /users/amvarma/failed.txt
echo "c3750-ipservicesk9-mz">> /users/amvarma/failed.txt
echo "c3750-advipservicesk9-mz">> /users/amvarma/failed.txt
else
echo ""
fi

#### End ####

##### Scan c3750e log #####
echo "scan c3750e log\n"
v1=
v1=`fgrep "cp c3750e-universal-mz /tftpboot/amvarma/c3750e-universal-mz" c3750e-log.txt`
#echo $v1

if [ -z "$v1" ]; then
echo "c3750e-universal-mz">> /users/amvarma/failed.txt
else
echo "c3750e-universal-mz">> /users/amvarma/success.txt
fi

## Scan c3750e crypto log ###
v1=
v1=`fgrep "cp c3750e-universalk9-mz /tftpboot/amvarma/c3750e-universalk9-mz" c3750e-crypto-log.txt`

if [ -z "$v1" ]; then
echo "c3750e-universalk9-mz">> /users/amvarma/failed.txt
else
echo "c3750e-universalk9-mz">> /users/amvarma/success.txt
fi

### END ###

## Notify users on build status ##

I suppose the mail id you had provided in the mailx command is a valid email id.

Please do not post your email Ids, sample ids like abc@xyz.com would do.

Moderators : Please remove the email ID :slight_smile:

Done..

Thanks for pointing out .:slight_smile:

-----

Can u help me with this script

Thx

Amit