File: //etc/lsi_mrdsnmp/sas-ir/install
#!/bin/sh
oem="LSI SAS-IR"
sfile="lsi_mrdsnmpd" # startup file name
defsnmpconf="snmpd.conf"
snmpconf="lsi_mrdsnmpd.conf"
snmpd="snmpd"
trapconf="sas_ir_TrapDestination.conf"
agent="lsi_mrdsnmpagent"
main="lsi_mrdsnmpmain"
mib_dat="sas_ir_mib.dat"
datacollector="libsas_ir_objects.so"
datacollector_version="1"
agtdir="/etc/lsi_mrdsnmp"
dcdir="${agtdir}/sas-ir"
script="lsi_mrdsnmpd"
source_file="${agtdir}/LSI_StorSNMP.ini"
destination_file="${source_file}"".tmp"
first_install=0
initdir="/etc/init.d"
systemctl="systemctl"
if [ "$TRAPIND" = "" ]; then
TRAPIND="Y"
fi
case "$TRAPIND" in
Y)
TRAPIND="Y"
;;
N)
TRAPIND="N"
;;
y)
TRAPIND="Y"
;;
n)
TRAPIND="N"
;;
*)
TRAPIND="Y"
;;
esac
SNMPDCONF=""
JOBFILE=""
if [ -f /etc/redhat-release ]; then
SNMPDCONF=/etc/snmp/snmpd.conf
JOBFILE=${sfile}.rh
fi
if [ -f /etc/SuSE-release ]; then
suse_ver=`cat /etc/SuSE-release | grep 'VERSION = 9'| wc -l` # Check for SUSE 9 Operating System
if [ "$suse_ver" == "1" ]; then
SNMPDCONF=/etc/snmpd.conf
else
SNMPDCONF=/etc/snmp/snmpd.conf
fi
JOBFILE=${sfile}.suse
fi
if [ ${SNMPDCONF} = "" ]; then
echo "SAS-IR SNMP Agent supports only Redhat and SuSE releases."
echo "Exiting ....."
exit 1
fi
if ! [ -f ${SNMPDCONF} ]; then
echo "${SNMPDCONF} file not found. Please check the filepath"
echo "Exiting ....."
exit 1
fi
Write_SNMPD_Conf()
{
cat ${SNMPDCONF} | grep "pass .1.3.6.1.4.1.3582 /usr/sbin/lsi_mrdsnmpmain" >/dev/null
if [ $? -ne 0 ] ; then
echo pass .1.3.6.1.4.1.3582 /usr/sbin/lsi_mrdsnmpmain >> ${SNMPDCONF}
fi
}
startup()
{
rm ${initdir}/${sfile} 2>/dev/null
ln -s ${agtdir}/${agent} /usr/sbin/${agent} 2>/dev/null
ln -s ${agtdir}/${main} /usr/sbin/${main} 2>/dev/null
ln -s /usr/lib64/libsas_ir_objects.so.1.34-0 /usr/lib64/libsas_ir_objects.so.1
ln -s /usr/lib64/${datacollector}.${datacollector_version} /usr/lib64/${datacollector} 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir.so.5.07-0 /opt/lsi/snmp/lib/libstorelibir.so.5 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir.so.5 /opt/lsi/snmp/lib/libstorelibir.so 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir-2.so.19.01-0 /opt/lsi/snmp/lib/libstorelibir-2.so.19 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir-2.so.19 /opt/lsi/snmp/lib/libstorelibir-2.so 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir-3.so.5.52-0 /opt/lsi/snmp/lib/libstorelibir-3.so.5 2>/dev/null
ln -s /opt/lsi/snmp/lib/libstorelibir-3.so.5 /opt/lsi/snmp/lib/libstorelibir-3.so 2>/dev/null
ln -s ${agtdir}/${JOBFILE} /etc/init.d/${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc0.d/K45${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc1.d/K45${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc6.d/K45${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc2.d/S55${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc3.d/S55${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc4.d/S55${sfile} 2>/dev/null
#ln -s $initdir/${sfile} $rcdir/rc5.d/S55${sfile} 2>/dev/null
}
Create_Config_File()
{
rm -f ${destination_file}
already_present=0
if [ ! -f ${source_file} ]
then
touch ${source_file}
echo "####################################">${source_file}
echo "NoOfInstalledController=1">>${source_file}
echo "## Dat File Name ### Trap Dest. File Name##">>${source_file}
echo "${dcdir}/${mib_dat} ${dcdir}/${trapconf} ${TRAPIND}">>${source_file}
Write_SNMPD_Conf
first_install=1
return 0
fi
while [ true ]
do
read line
if [ $? -ne 0 ]
then
break
fi
no_of_controller_line=`echo ${line}|grep NoOfInstalledController`
if [ "${no_of_controller_line}" = "" ]; then
find_dat=`echo ${line} | grep ${mib_dat}`
if [ "${find_dat}" = "" ]; then
echo ${line} >> ${destination_file}
else
already_present=1
break
fi
else
no_of_controller=`echo ${line}|sed s/NoOfInstalledController=//`
no_of_controller=`expr $no_of_controller + 1`
echo "NoOfInstalledController="$no_of_controller >>${destination_file}
fi
done < ${source_file}
if [ ${already_present} = 0 ]; then
echo "${dcdir}/${mib_dat} ${dcdir}/${trapconf} ${TRAPIND}">>${destination_file}
rm -f ${source_file}
mv ${destination_file} ${source_file}
else
rm -f ${destination_file}
fi
}
#1.Check snmpd is installed or not!
if ! [ -x /sbin/snmpd -o -x /usr/sbin/snmpd -o -x /usr/local/sbin/snmpd ] ; then
echo snmpd is not installed.
echo Can not continue installation of $oem Agent
exit 1
fi
#2.Check snmptrap is installed or not!
if ! [ -x /usr/bin/snmptrap ] ; then
if ! [ -x /usr/local/bin/snmptrap ] ; then
echo Can not find snmptrap in /usr/bin
echo Can not continue installation of $oem Agent
echo Please install the net-snmp agent
exit 1
else
[ -f /usr/bin/snmptrap ] && rm -f /usr/bin/snmptrap
ln -s /usr/local/bin/snmptrap /usr/bin/snmptrap
fi
fi
#3. Create configuration files
Create_Config_File
#4. Create startup process
if [ -d /etc/rc.d ] ; then
rcdir="/etc/rc.d"
else
rcdir="/etc"
fi
startup
#5.
echo "Starting snmpd"
apid=`pidof ${snmpd} | cut -f1 -d" "`
rhel_ver=`cat /etc/redhat-release | grep '7.0'| wc -l` # Check for RHEL 7 Operating System
if [ "$rhel_ver" == "1" ]; then
${systemctl} start ${snmpd}
else
if [ "$apid" != "" ] ; then
[ -x ${initdir}/${snmpd} ] && ${initdir}/${snmpd} restart
else
[ -x ${initdir}/${snmpd} ] && ${initdir}/${snmpd} start
fi
fi
if [ -f /etc/SuSE-release ]; then
if [ ${first_install} = 1 ]; then
echo "Registering Service lsi_mrdsnmpd"
chkconfig -a lsi_mrdsnmpd 2>|/dev/null
if [ "$apid" != "" ] ; then
[ -x ${initdir}/${script} ] && ${initdir}/${script} stop
fi
fi
fi
if [ -f /etc/redhat-release ]; then
if [ "$first_install" = "1" ]; then
echo "Registering Service lsi_mrdsnmpd"
chkconfig --add lsi_mrdsnmpd 2>|/dev/null
fi
fi
echo "Starting LSI SNMP Agent"
apid=`pidof ${agent} | cut -f1 -d" "`
rhel_ver=`cat /etc/redhat-release | grep '7.0'| wc -l` # Check for RHEL 7 Operating System
if [ "$rhel_ver" == "1" ]; then
${systemctl} start ${script}
else
if [ "$apid" != "" ] ; then
[ -x ${initdir}/${script} ] && ${initdir}/${script} restart
else
[ -x ${initdir}/${script} ] && ${initdir}/${script} start
fi
fi
exit 0