Email Alert in UNIX


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Email Alert in UNIX
# 1  
Old 03-09-2017
Email Alert in UNIX

Hi There

I have to wrote a script where I am able to echo a result of an SQL script, however I want to be able to send an email to myself when it is more than 0 (so whenever a value is returned) is this possible?

I tried one way from looking on the web but this didn't work, I have added my script below

Code:
duplicate_user_list=`psql cemdb admin -t -f /opt/ca/SAP_Tooling/sql/self_monitoring/duplicate_users.sql|sed '/^$/d' | awk '{print $1}'`
 duplicate_user_count=`psql cemdb admin -t -f /opt/ca/SAP_Tooling/sql/self_monitoring/duplicate_users.sql|sed '/^$/d' | wc -l`

 if [ "$duplicate_user_count" -eq 0 ]
 then
 duplicate_user_status="No Duplicate IP's Found"
 else
 duplicate_user_status="Duplicate IP's Found"

 fi

 if [ "$duplicate_user_count" -gt 0 ]
 then
 echo "mail sent to SAP Tooling Team" | mail -s "$duplicate_user_list" dummyuser@dummydomain.co.uk

The count works fine and returns what is expected

Any help will be much appreciated

Many Thanks



Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!
For your benefit, I replaced your clear text e-mail-address with a dummy one.

Last edited by RudiC; 03-09-2017 at 10:23 AM.. Reason: Added CODE tags.
# 2  
Old 03-09-2017
Hi,

I've had to hard-code the variables in this example of course, but something like this should work.

Code:
$ cat script.sh 
#!/bin/bash
duplicate_user_list="rod jane freddy"
duplicate_user_count=3

if [ "$duplicate_user_count" -gt "0" ]
then
        echo "Duplicate users found, mailing you the details"
        echo "$duplicate_user_list" | mail -s "Details of duplicate users" unixforum@localhost
        exit 1
else
        echo "No duplicate users found"
        exit 0
fi

$ ./script.sh 
Duplicate users found, mailing you the details
$ mail
"/var/mail/unixforum": 1 message 1 new
>N   1 unixforum@localhost Thu Mar  9 13:30  15/667   Details of duplicate users
? 1
<Some headers redacted for privacy reasons>
Subject: Details of duplicate users
To: <unixforum@localhost>
X-Mailer: mail (GNU Mailutils 2.99.99)

rod jane freddy
? d 1
? q
Held 0 messages in /var/mail/unixforum
$

Hope this helps.
This User Gave Thanks to drysdalk For This Post:
# 3  
Old 03-09-2017
Hi @drysdalk

Thank you for your reply:

I have copied what you have done but now do not get any outage when executing the code.

Is there of emailing too an outlook email?

Many Thanks
# 4  
Old 03-09-2017
Hi,

You will of course have to edit the code I provided so that it has your own variable defitions, and you'll need to change the line that sends the mail to have your own e-mail address in it.

But as you can see from my own run of the script which I included as sample output, it did run, and sent me an e-mail which I was able to read.

What output did you get from the script ? What type of system are you running it on, and what shell are you using ? For reference, my own system is running Linux, specifically Ubuntu 16.04 LTS x86_64, and this script is set up to use Bash as the shell.
# 5  
Old 03-09-2017
On top of what drysdalk said, you might want to reduce resource consumption by running the psql query just once. One option would be to use "here strings" provided by recent shells (ksh, bash):
Code:
read CNT USR <<< $(psql ... | awk 'NF {T = T " " $1; CNT++} END {print  CNT, T}')

# 6  
Old 03-09-2017
Hi

I am running this on Putty using a bash shell script. My code is:

Code:
duplicate_user_list=`psql cemdb admin -t -f /opt/ca/SAP_Tooling/sql/self_monitoring/duplicate_users.sql|sed '/^$/d' | awk '{print $1}'`
duplicate_user_count=`psql cemdb admin -t -f /opt/ca/SAP_Tooling/sql/self_monitoring/duplicate_users.sql|sed '/^$/d' | wc -l`

if [ "$duplicate_user_count" -gt 0 ]
then

duplicate_user_status="Duplicate Users Found Emailing The Details"

echo "$duplicate_user_list" | mail -s "Details of Duplicate Users" dummyuser@dummydomain.co.uk

else

duplicate_user_status="No Duplicate Users Found"

fi

echo "<metric type=\"IntCounter\" name=\"SQL|CEMDB|Users:Duplicate User IP Count\" value=\"$duplicate_user_count\"/>"
echo "<metric type=\"StringEvent\" name=\"SQL|CEMDB|Users:Duplicate User IP Status\" value=\"$duplicate_user_status\"/>"

My return is:
Code:
[rp1cem@wycvlapph036 self_monitoring]$ ./epagent_cem_database_metrics_TEST.sh
<metric type="IntCounter" name="SQL|CEMDB|Users:Duplicate User IP Count" value="3"/>
<metric type="StringEvent" name="SQL|CEMDB|Users:Duplicate User IP Status" value="Duplicate Users Found Emailing The Details"/>
[rp1cem@wycvlapph036 self_monitoring]$

Cheers


Moderator's Comments:
Mod Comment Please use CODE (not QUOTE) tags as required by forum rules!
And again, I replaced your clear text e-mail-address with a dummy one.

Last edited by RudiC; 03-09-2017 at 10:23 AM.. Reason: Changed QUOTE to CODE tags.
# 7  
Old 03-09-2017
Hi,

I was meaning what is the nature of the system that's running the script ? What you're running on your own PC isn't really relevant. Is it Linux/Solaris/AIX/etc, and what shell are you using ? If you copy-and-paste in its entirety the sample code I gave you into a fresh script (with the only change being the e-mail address), does that at least run and send you an e-mail ?
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Email alert after termination

I am running the gaussian program on UNIX with bash and I want to form a script that will email me once the output life terminates either "normal termination" or "false" I just started learning this last week so could you let me know how to go about this.:b: (13 Replies)
Discussion started by: Jade_Michael
13 Replies

2. Shell Programming and Scripting

Using top command to email if process is exceeding 25% and sending an email alert if so

This is my first time writing a script and Im having some trouble, Im trying to use the top command to monitor processes and the amount of CPU usage they require, my aim is to get an email if a process takes over a certain percentage of CPU usage I tried grep Obviosly that hasnt worked, Any... (8 Replies)
Discussion started by: jay02
8 Replies

3. Shell Programming and Scripting

Unix Shell Script to automate email alert

Hi all, I have a task on my plate which is of high priority. I need an automated email alert that checks FTP notices subdirectory on a daily basis and forwards any word files to a group of people. This word files gets created whenever there is an issue with FTP connectivity. Please help...... (1 Reply)
Discussion started by: stunnerz_84
1 Replies

4. Shell Programming and Scripting

email Alert

Hello, I want a script that will scan the file /etc/httpd/conf/httpd.conf and the folder /etc/httpd/libexec/ -bash-2.05b# grep mod_r /etc/httpd/conf/httpd.conf LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c -bash-2.05b# -bash-2.05b# find... (4 Replies)
Discussion started by: fed.linuxgossip
4 Replies

5. Shell Programming and Scripting

Email alert script

I need to code a script, which will run via cron, every 30 minutes. The script will read a file containing a date&time and number (which represents disk space). The file gets appended to every 30 minutes. Here's a sample of the file: CPU 1:04/25/02 1:00 am:1972554 CPU 1:04/25/02 1:30... (1 Reply)
Discussion started by: moon
1 Replies
Login or Register to Ask a Question