I’ve created a Task that contains a shell script running some commands and writing the output to a file. This works fine on a Lab but cannot get ir running on production.
In lab environment I just run the task and the result files are written. In production, no file si created. I’ve exported / imported the task from one environment to the other.
The ideais that the AIX fixlets checks the lines in the results file to check services status.
This is the script:
#!/bin/sh
FILE=“/var/opt/BESClient/__BESData/CustomSite_BNA_SI_AIX/SCM/mytmp/results/def_usr_stanza.results”
echo " " > $FILE
parametro[1]=“account_locked”
parametro[2]=“admin”
parametro[3]=“auth1”
parametro[4]=“auth2”
parametro[5]=“daemon”
parametro[6]=“login”
parametro[7]=“registry”
parametro[8]=“rlogin”
parametro[9]=“su”
parametro[10]=“sugroups”
parametro[11]=“ttys”
parametro[12]=“expires”
parametro[13]=“loginretries”
parametro[14]=“umask”
valor[1]=“account_locked=false”
valor[2]=“admin=false”
valor[3]=“auth1=SYSTEM”
valor[4]=“auth2=NONE”
valor[5]=“daemon=true”
valor[6]=“login=true”
valor[7]=“registry=”
valor[8]=“rlogin=true”
valor[9]=“su=false”
valor[10]=“sugroups=”
valor[11]=“ttys=ALL”
valor[12]=“expires=0”
valor[13]=“loginretries=3”
valor[14]=“umask=27”
contador=1
while [ “$contador” -le “14” ]
do
comando1=lssec -f /etc/security/user -s default -a "${parametro[$contador]}"|awk '{ print $2 }'
if [ “$comando1” == “${valor[$contador]}” ]
then
echo "${parametro[$contador]} - PASS " >> $FILE
contador=$(($contador + 1))
else
echo "${parametro[$contador]} - FAIL " >> $FILE
contador=$(($contador + 1))
fi
done
#CONTROL DE SERVICIOS
#Control sobre archivos /etc/inetd.conf , /etc/inittab, /etc/rc.nfs, /etc/rc.tcpip, /usr/dt/config/Xaccess, /etc/securituser y /etc/snmpd.conf
SRV_FILE=“/var/opt/BESClient/__BESData/CustomSite_BNA_SI_AIX/SCM/mytmp/results/servicios.results”
echo " " > $SRV_FILE
#Control de servicios sobre archivo /etc/inetd.conf
MYFILE=‘/etc/inetd.conf’
if test ! -s “$MYFILE”
then
#se debería indicar que ninguno de los servicios de este archivo son invocados.
echo “$MYFILE - FAIL - no existe o está vacío” >> $SRV_FILE
else
#si el archivo existe se ejecutan la existencia de líneas no comentadas que invoquen el servicio a controlar
echo “$MYFILE - PASS - existe y no está vacío” >> $SRV_FILE
servicio[1]=bootps
servicio[2]=chargen
servicio[3]=cmsd
servicio[4]=comsat
servicio[5]=daytime
servicio[6]=discard
servicio[7]=dtspc
servicio[8]=echo
servicio[9]=exec
servicio[10]=finger
servicio[11]=ftp
servicio[12]=imap2
servicio[13]=klogin
servicio[14]=kshell
servicio[15]=rlogin
servicio[16]=netstat
servicio[17]=ntalk
servicio[18]=pcnfsd
servicio[19]=pop3
servicio[20]=rexd
servicio[21]=rquotad
servicio[22]=rstatd
servicio[23]=rusersd
servicio[24]=rwalld
servicio[25]=sprayd
servicio[26]=systat
servicio[27]=talk
servicio[28]=telnet
servicio[29]=tftp
servicio[30]=time
servicio[31]=uucp
contador=1
while [ “$contador” -le “31” ]
do
comando2=grep -c "^${servicio[$contador]}" /etc/inetd.conf
if [ “$comando2” -eq “0” ]
then
echo "${servicio[$contador]} - PASS " >> $SRV_FILE
contador=$(($contador + 1))
else
echo "${servicio[$contador]} - FAIL " >> $SRV_FILE
contador=$(($contador + 1))
fi
done
fi
#Control de servicios sobre archivo /etc/inittab
MYFILE=‘/etc/inittab’
if test ! -s “$MYFILE”
then
echo “$MYFILE - FAIL - no existe o está vacío” >> $SRV_FILE
else
echo “$MYFILE - PASS - existe y no está vacío” >> $SRV_FILE
servicio[1]=dt
servicio[2]=dt_nogb
servicio[3]=httpdlite
servicio[4]=i4ls
servicio[5]=imqss
servicio[6]=lpd
servicio[7]=piobe
servicio[8]=qdaemon
servicio[9]=dtspc
servicio[10]=uprintfd
servicio[11]=writesrv
servicio[12]=xdm
contador=1
while [ “$contador” -le “12” ]
do
comando2=grep -c "^${servicio[$contador]}" /etc/inittab
if [ “$comando2” -eq “0” ]
then
echo "${servicio[$contador]} - PASS " >> $SRV_FILE
contador=$(($contador + 1))
else
echo "${servicio[$contador]} - FAIL " >> $SRV_FILE
contador=$(($contador + 1))
fi
done
fi
#Control de servicios sobre archivo /etc/rc.nfs
#Control de servicios sobre archivo /etc/rc.nfs y /etc/rc.tcpip
echo “Control de servicios de rc.nfs y rc.tcpip” >> $SRV_FILE
servicio[1]=biod
servicio[2]=keyserv
servicio[3]=nfsd
servicio[4]=rpc.lockd
servicio[5]=rpc.mountd
servicio[6]=rpc.statd
servicio[7]=yppasswdd
servicio[8]=ypupdated
servicio[9]=dhcprd
servicio[10]=dhcpsd
servicio[11]=dpid2
servicio[12]=gated
servicio[13]=mrouted
servicio[14]=named
servicio[15]=ndpd-host
servicio[16]=ndpd-router
servicio[17]=routed
servicio[18]=rwhod
servicio[19]=sendmail
servicio[20]=timed
contador=1
while [ “$contador” -le “20” ]
do
comando2=lssrc -a | grep -w "${servicio[$contador]}" | awk '{ print $3 }'
if [[ “$comando2” == inoperative* ]]
then
echo "${servicio[$contador]} - PASS - ${comando2} " >> $SRV_FILE
contador=$(($contador + 1))
else
comando3=lssrc -a | grep -w "${servicio[$contador]}" | awk '{ print $4 }'
echo "${servicio[$contador]} - FAIL - ${comando3} " >> $SRV_FILE
contador=$(($contador + 1))
fi
done
Any idea about the reason that this is working on one environment and not in the other ?