
Moderatori:
Paolino,
fairyvilje
alev ha scritto:Boh
angus ha scritto:il Bash Scripting è Turing-complete
gohan@localhost:~$ for i in `seq 1 10`
> do
> echo "Hello World"
> done
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
gohan@localhost:~$
FULLMAILDEST="xxx@xxx.xx"
MAILDEST="yyy@yyy.yy"
FSDEFFILE=fslist.def
STATUSFILE=.fsstatus.log
REPORTFILE=fullreport.log
INVALIDFILE=invalid.log
MACHINE=`hostname|tr "[a-z]" "[A-Z]"`
TOOLDIR=$HOME/tools/fs
cd ${TOOLDIR}
rm -f ${REPORTFILE}
# Building current filesystems status file
echo "FILESYSTEM,TOTAL_SPACE_MB,FREE_SPACE_MB,USED_SPACE,STATUS" > ${STATUSFILE}
for FSDEF in `cat ${FSDEFFILE}|grep -v "^#"`
do
FSSPEC=`echo ${FSDEF}|cut -d"," -f1`
FSWARN=`echo ${FSDEF}|cut -d"," -f2`
FSCRIT=`echo ${FSDEF}|cut -d"," -f3`
FSSKIP=`echo ${FSDEF}|cut -d"," -f4`
df -m|grep -i ${FSSPEC}|grep -viE "${FSSKIP}"|while read CURRFSSTATUS
do
FSNAME=`echo ${CURRFSSTATUS}|awk -F/ '{print $NF}'`
FSFULLNAME=`echo ${CURRFSSTATUS}|awk '{print $NF}'`
FSDEV=`echo ${CURRFSSTATUS}|awk '{print $1}'`
FSSIZE=`echo ${CURRFSSTATUS}|awk '{print $2}'`
FSFREE=`echo ${CURRFSSTATUS}|awk '{print $3}'`
CURRFSFILL=`expr \`echo ${CURRFSSTATUS}|awk '{print $4}'|awk -F% '{print $1}'\``
if [ ${CURRFSFILL} -le ${FSWARN} ]
then
FILLSTATUS="OK"
elif [ ${CURRFSFILL} -gt ${FSWARN} ] && [ ${CURRFSFILL} -le ${FSCRIT} ]
then
FILLSTATUS="WARNING"
else
FILLSTATUS="CRITICAL"
fi
echo "${FSFULLNAME},${FSSIZE},${FSFREE},${CURRFSFILL}%,${FILLSTATUS}" >> ${STATUSFILE}
done
done
# Generating report file
awk -F, '{printf("%-40s%16s%16s%12s%-10s\n",$1,$2,$3,$4," " $5)}' ${STATUSFILE} > ${REPORTFILE}
#
case $1 in
-full)
mail -s "${MACHINE} - Filesystem status at `date \"+%d/%m/%y_%H:%M\"`" ${FULLMAILDEST} < ${REPORTFILE}
;;
*)
# If some filesystem raises WARNING or CRITICAL status, send a message
cat ${REPORTFILE}|grep -E -q "WARNING|CRITICAL"
if [ $? -eq 0 ]
then
# Building header
head -1 ${REPORTFILE} > ${INVALIDFILE}
#
# Parsing report for invalid status
cat ${REPORTFILE}|grep -E "WARNING|CRITICAL" >> ${INVALIDFILE}
mail -s "${MACHINE} - FILESYSTEM SPACE PROBLEM AT `date \"+%d/%m/%y_%H:%M\"`"\
${MAILDEST} < ${INVALIDFILE}
fi
;;
esac
Visitano il forum: Google Adsense [Bot] e 50 ospiti