Logsave command is used to save the output of a commands in a log file.
Syntax: logsave
I used it in my below script -
#!/bin/bash
# SCRIPT NAME: PreHealthCheck.sh
# DESCRIPTION: It does a precheck of all our Servers servers on disk and connectivity
# AUTHOR: D E B A
# OWNER: Fundoo Team
#########################################################
ADMIN="debajitkataki@gmail.com"
ALERT=80
flag=0
rm -f /tmp/PreChkRprt.txt
rm -f /tmp/report.txt
tmpFileName=/tmp/PreChkRprt.txt
touch ${tmpFileName}
email__msg(){
MailSubject="Prod Build Precheck report"
SuccessMessage=" Please check the below sections for any precheck concern:\n\n"
sed -i '1i ---------------------------------------------------------' ${tmpFileName}
sed -i '2i Please check the below sections for any precheck concern:' ${tmpFileName}
sed -i '3i ---------------------------------------------------------' ${tmpFileName}
echo -e "\n\n Script Signature: `hostname`:${0}" >> ${tmpFileName}
mail -s "Alert: Prod Build Precheck report" $ADMIN < ${tmpFileName}
diskSpace(){
echo -e "\n\n ##### -- High disk utilization Report --#####\n" >> ${tmpFileName}
for i in `cat wslist.txt`
do
usepar=0
output=0
ssh -oConnectTimeout=5 -xq $i df -Ph > /tmp/df.out
output=`cat /tmp/df.out | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $6 }'`
usepar=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ "$usepar" -ge 80 ]
then
echo " $i is running out of space \"$partition = $usepar% \" " >> ${tmpFileName}
flag=1
fi
done
}
connctivity_check(){
echo -e "\n\n ##### ---- Checking connectivity ----#####" >> ${tmpFileName}
echo -e "--------------------------------------------------------------" >> ${tmpFileName}
echo -e"\n"
for i in `cat wslist.txt`; do logsave -a /tmp/report.txt nc -v -w 1 -z $i 22 ; done
grep "Connection timed out" /tmp/report.txt >> ${tmpFileName}
echo -e "\n ....rest all connecting fine on port 22!!" >> ${tmpFileName}
}
diskSpace
connctivity_check
email__msg
Thanks/-
D E B U
No comments:
Post a Comment