Sponsored Content
Top Forums Shell Programming and Scripting Mail sent from variable is not aligned in shell script Post 302997500 by viay on Monday 15th of May 2017 09:01:13 AM
Old 05-15-2017
Hello Don,

sorry for late response I was out of my location, Here I've attached code as you suggested and updated,

1.) Please show us the code where you tried what I suggested in post #2 in this thread. Steps 1, 2, 4, and 5 of what I suggested do not appear in the code you showed us in post #3.


Code:
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[@]};
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+="$tmp";

                fi
        fi
done
if [ ! -z "${alertlist}" ]; then
        echo "${alertlist}" | mail -s "ALERT:  Running out of space" $maillist;
fi

a.) use echo "$tmp" inside the loop! the result is

Code:
19 1 39 3 90 83 1 14 96
19 1 39 3 40 83 1 14 66
Running out of space "/u05 (90%)" on localhost.local as on Mon May 15
Running out of space "/u02 (96%)" on localhost.local as on Mon May 15

b.) The code that you did show us in post #3 defines a function named alertlist whose body depends on what shell you're using!
bash_version 4.1.2(1)-release

and finally the output of above script is

Code:
Running out of space "/d01 (90%)" on localhost.local as on Mon May 15 Running out of space "/patches (96%)" onlocalhost.local as on Mon May 15

all it shows in a single line, but echo of "$tmp" variable is stored clear. But I need mail which contains information as it's stored in "$tmp" with proper alignment, Because now 2 of the mount points only passed our condition if it was more than 10 it's very complex to understand.

2.)What operating system and shell are you using?
RHEL 6.8
bash_version 4.1.2(1)-release

3.)Do you really have a directory named $ in the directory in which you run this script?
it refers the directory where the files are located, it's actually $HOME/monitor/
$HOME is home directory of username in my case username is vijay,
So
Code:
vijay/monitor

4.)Or does $/ have some special meaning in the shell you're using?
No, it redirect to the directory called $HOME/monitor. in post #1 I conclude that information.

Hope this will help.
[mod]Please use CODE tags as required by forum rules!

Last edited by Don Cragun; 05-15-2017 at 08:34 PM.. Reason: Add CODE and ICODE tags.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

shell script to send a mail

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)
Discussion started by: jayaramanit
1 Replies

2. Shell Programming and Scripting

assign awk's variable to shell script's variable?

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)
Discussion started by: tiger2000
4 Replies

3. Shell Programming and Scripting

Mail shell script

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)
Discussion started by: rgumm
3 Replies

4. UNIX for Dummies Questions & Answers

How to send e-mail from shell script ( C shell )?

Hi , How to send e-mail from shell script ( C shell ) . Mailx command is not working ( It didn't giving error also ). Please help me (2 Replies)
Discussion started by: arukuku
2 Replies

5. Shell Programming and Scripting

Sending mail from shell script

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)
Discussion started by: prarat
6 Replies

6. Shell Programming and Scripting

Shell Script To E-Mail

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)
Discussion started by: SalientAnimal
14 Replies

7. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

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)
Discussion started by: Ashunayak
2 Replies

8. Shell Programming and Scripting

To send a mail through shell script

I want to send a mail through shell script,If it is possible Please give me a code. mail id : upload.xxx@example.com (8 Replies)
Discussion started by: kannansoft1985
8 Replies

9. Shell Programming and Scripting

A shell script to run a script which don't get terminated and send a pattern from the output by mail

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)
Discussion started by: Sambit Sahu
11 Replies

10. UNIX for Beginners Questions & Answers

How can I assign awk's variable to shell script's variable?

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)
Discussion started by: geomarine
8 Replies
All times are GMT -4. The time now is 08:11 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy