Help with writing simple bash script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with writing simple bash script
# 1  
Old 02-20-2010
Error Help with writing simple bash script

I want to write a bash script to:

1. Send an email from localhost to an external gmail account. (gmail then automatically forwards the message back to a pop account on the same server.

2. Script waits 3 minutes then checks to see if the email arrived, and if not, it sends an email to administrator.

Can anyone point me in the right direction? My knowledge of writing scripts is limited and I'm hoping someone can help.

Thanks so much,

Sallyanne
# 2  
Old 02-20-2010
Put some unique string into the email, and write a script with a loop in it that sleeps for 10 seconds, The script should check the recipients mail box using grep for the unique string.
Code:
#!/bin/ksh
i=1
while [ $i -lt 18 ]
do
grep mystring /var/spool/mail/mailbox
if [ $? -eq 0 ]
then
echo found 
exit 0
else
echo not found
fi
i=`expr $i + 1`
sleep 10
done
mail -s "not received" admin <<EOF
email not recieved in 3 minutes
EOF

# 3  
Old 02-21-2010
Thanks for your advice. I'm a little confused as to how to specify the sending of the email in the first place. I can see in your example the sending of email if the recipient does not receive the email, but how to specify the sending of the first email with the unique string?

Sorry if this seems obvious, I'm new and just getting my head around things.

Appreciate any help you can offer.

Regards,
Sallyanne
# 4  
Old 02-21-2010
I may not be able to give the final answer but "jgt" has given the key to the solution and I may be able to help others by asking questions.

Please state what Operating System you have and what mail client you are running?

Can you send a mail by using say "mail" or "mailx" from the command line? If so, what do you type? In general if you can type it at the command line, it can be scripted.
# 5  
Old 02-21-2010
To send an email, with a unique string (provided not more than one email per second is generated.)


Code:
#set UNIQUE to Process ID + current date and time
UNIQUE=$$`date +"%Y%m%d%H%M%S`
echo $UNIQUE  >>output.log
mail -s "Test Response Time" someone@gmail.com <<EOF
Remarks:$UNIQUE
Sent at `date`
EOF

# 6  
Old 02-22-2010
I am running Redhat Enterprise 5 and running gmail as the MTA. Yes, I can send an email via the command line using the mail command.

The real problem I'm having now is I really don't know how to tie all the bits and pieces together which I need to make this email monitoring script work

I know it's a big ask (maybe too big) for someone to provide more specific and final code which I can use.

Thanking you all for your advice and assistance. It's a steep learning curve for me!

Regards,
Sallyanne
# 7  
Old 02-22-2010
Assuming that you want to run this test on demand, just join the two scripts together as:

Code:
#!/bin/ksh
#set UNIQUE to Process ID + current date and time
UNIQUE=$$`date +"%Y%m%d%H%M%S`
echo $UNIQUE  >>output.log
mail -s "Test Response Time" someone@gmail.com <<EOF
Remarks:$UNIQUE
Sent at `date`
EOF
#test to see if received
i=1
while [ $i -lt 18 ]
do
grep $UNIQUE /var/spool/mail/mailbox
if [ $? -eq 0 ]
then
echo Received 
echo $UNIQUE `date` >>output.log
exit 0
else
echo Not yet
fi
i=`expr $i + 1`
sleep 10
done
mail -s "not received" admin <<EOF
email not recieved in 3 minutes
EOF


Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Question about writing a bash script

Hello, I want to write a bash script to delete the content after '#'. However, if '#' appears in a string with "", ignore this. For example, input file: test #delete "test #not delete" Output file: test "test #not delete" Does anyone know how to write this script? Thanks (1 Reply)
Discussion started by: jeffwang66
1 Replies

2. Shell Programming and Scripting

Mkbootfs writing to stdout in bash script

Hi, I need to automate some repacking tasks of a boot image for Android When in command line, I can use this command: mkbootfs /path/to/root > /path/to/ramdisk-recovery.cpio;However, if I try to run the command from a shell script under Ubuntu, it fails and outputs to stdout instead of the... (27 Replies)
Discussion started by: Phil3759
27 Replies

3. Shell Programming and Scripting

Writing a bash script using host

Im trying to write a script using the host command but its not working properly. I cant understand what Im doing wrong. When I use it at the command prompt, it works fine. But its being used actually in the script, it says its not found: 2 SERVFAIL. Can anyone help me? Here's what I have so far: no... (6 Replies)
Discussion started by: relsha
6 Replies

4. Shell Programming and Scripting

Help making simple perl or bash script to create a simple matrix

Hello all! This is my first post and I'm very new to programming. I would like help creating a simple perl or bash script that I will be using in my work as a junior bioinformatician. Essentially, I would like to take a tab-delimted or .csv text with 3 columns and write them to a "3D" matrix: ... (16 Replies)
Discussion started by: torchij
16 Replies

5. Shell Programming and Scripting

writing a simple script to get total number of cpus/cores in server

Hi, I am very new to scripting and I wanted to write a unix shell script which can give me, 1)number of cpu's in a box 2)number of cores per cpu 3)total number of cores in abox (ie multiplying 1&2) I am also trying to figure out how to check if hyper-threading is enabled in the... (8 Replies)
Discussion started by: steven12
8 Replies

6. Shell Programming and Scripting

problem writing a simple c shell script

#!/bin/csh echo hello world this is what i got in a text file called ss1. i type "chmod 755 ss1.txt" to make it executable. then when i type ss1 or ss1.txt it says "ss1 command not found" what am i doing wrong? (19 Replies)
Discussion started by: pantelis
19 Replies

7. UNIX for Dummies Questions & Answers

HELP! writing simple shell script

how would i write a shell script to show the number of lines in which int variable appears in a c++ program. (3 Replies)
Discussion started by: deadleg
3 Replies

8. Shell Programming and Scripting

Writing Bash script

Could anyone help me to Write a script in BASH Shell to determine the percentage of system disk space you are using. (1 Reply)
Discussion started by: boris
1 Replies

9. Shell Programming and Scripting

Problems writing bash script to unzip files

I'm getting the following errors when I try to write a script to unzip some zip files. When I use the free trial copy of the commerical winzip program, however, they work fine. When I use -l or -t on unzip it indicates no errors. When I use the -o switch interactively from the bash command line it... (1 Reply)
Discussion started by: siegfried
1 Replies

10. UNIX for Dummies Questions & Answers

Need help writing simple script

I'm trying to write a simple unix script that will delete files after 30 days of being created. I've never done this before but conceptually it sounds easy. Here is what I'm trying to do: Get System Date Get File Date If (sysdate-filedate>30days) rm file All of these files are contained... (1 Reply)
Discussion started by: tamdoankc
1 Replies
Login or Register to Ask a Question