export maillist=abc@gmail.com;
#df -PH /d04 /d05 /u01 /export | grep -vE '^Filesystem|none|cdrom'|awk '{ print $5 " " $6 }' | while read output;
df -PH | grep -vE '^Filesystem|none|cdrom|swdepot'|awk '{ print $5 " " $6 }' > $HOME/monitor/log/diskcheck.log;
#diskcheck is current output whereas disk_alert is previous runned output
if [ -s "$HOME/monitor/log/disk_alert.log" ]; then
#Getting variables and compare with old
usep=($(cat $HOME/monitor/diskcheck.log | awk '{ print $1 }' | cut -d'%' -f1));
partitions=($(cat $HOME/monitor/diskcheck.log | awk '{ print $2 }' ));
usep1=($(cat $HOME/monitor/log/disk_alert.log | awk '{ print $1 }' | cut -d'%' -f1));
else
cat "$HOME/monitor/diskcheck.log" > "$HOME/monitor/log/disk_alert.log";
usep=($(cat $HOME/monitor/diskcheck.log | awk '{ print $1 }' | cut -d'%' -f1));
partitions=($(cat $HOME/monitor/diskcheck. | awk '{ print $2 }' ));
usep1=($(cat $HOME/monitor/log/disk_alert.log | awk '{ print $1 }' | cut -d'%' -f1));
fi
echo ${usep[@]};
echo ${usep1[@]};
unset alertlist
# index = i
for i in ${!usep[@]}; do
if [ ${usep[$i]} -gt 80 ]; then
if [ ${usep[$i]} -gt ${usep1[$i]} ]; then
# Temp to store current percentage diff and partition to store in a variable.
tmp="$(echo -e "Running out of space \"${partitions[$i]} (${usep[$i]}%)\" on $(hostname) as on $(date)")";
echo "$tmp"
#tmp=$(printf "%s\n" "(${usep[$i]}%) percent used on ${partitions[$i]}");
alertlist=("${alertlist[@]" "$tmp")
fi
fi
done
if [ ${#alertlist} -gt 0 ]; then
printf '%s\n' "${alertlist[@]}" | mail -s "ALERT: Running out of space" $maillist;
echo "Following text sent as body of mail to $maillist:"
printf '%s\n' "${alertlist[@]}"
fi
and tell us what happens.
Note, however, that if a mounted filesystem is ever unmounted or a new filesystem is mounted between runs of your script, there is no guarantee that the order of the percentage values stored in the arrays usep and usep1 are in the same order. And note that if $HOME/monitor/log/disk_alert.log is not the name of an existing file whose size is larger than 0, the assignment to the partitions array will fail since you're reading the file diskcheck. instead of diskcheck.log:
Hi,
I need a shell script which runs in the backround for all the 24 hours and send a mail to us regarding the output of the prstat command when the load average increase above certain percent.
kindly help me on this...... (1 Reply)
Dear All,
we have a command output which looks like :
Total 200 queues in 30000 Kbytes
and we're going to get "200" and "30000" for further process. currently, i'm using :
numA=echo $OUTPUT | awk '{print $2}'
numB=echo $OUTPUT | awk '{print $5}'
my question is : can I use just one... (4 Replies)
Hi All,
I want to send mail to multiple users..
Currently I am using below script
cat $STATUS_FILE|mailx -s "$SUBJECT" -r xxx@yyy.com $MAILTO
How can i give cc or bcc to in this script
Please help me
thanks in advance
Regards
RG (3 Replies)
Hello All,
I m trying to send mail from my unix script,
I have used the below command
mailx -s 'hi' email address < temp.txt
It is not giving me any error,but I couldn't receive the mail
Can you please help me.
Many Thanks,
Pragyan (6 Replies)
Hi All,
I'm having some problems with my shell script. When running the script I get the following errors:
line 101: <html>: command not found
line 105: /dumpfile.txt: No such file or directory
The file dumpfile.txt does exist and I have double and tripple checked this. I'm not sure... (14 Replies)
I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist.
diff=$1$2.diff
id=$2 new=new_$diff
echo "My id is $1"
echo "I want to sync for user account $id"
##awk command I am using is as below
cat $diff | awk... (2 Replies)
Hi Guys,
I am very new to shell script and I need your help here to write a script. Actually, I have a script abc.sh which don't get terminated itself. So I need to design a script to run this script, save the output to a file, search for a given string in the output and if it exists send those... (11 Replies)
I have the following script, and I want to assign the output ($10 and $5) from awk to N and L:
grdinfo data.grd | awk '{print $10,$5}'| read N L
output from gridinfo data.grd is: data.grd 50 100 41 82 -2796 6944 0.016 0.016 3001 2461. where N and L is suppose to be 3001 and 100. I use... (8 Replies)