BASH Script

Hello:

I know nothing about bash scripting and need help compiling a script that would automate the  following. (Red-Hat 9)

1. execute a script that we already have in place have in place that analyzes our maillog
2. after the script executes - output to a file...lets say maillog_analysis
3. email that file to admin.
4. I would set this up as a cron job to run at periodic intervals.

Is this possible without too much difficulty.
jstansleyAsked:
Who is Participating?
 
jlevieConnect With a Mentor Commented:
If I understand your question correctly you'd need a script along the lines of:

#!/bin/sh
#
# Be nice and set a Subject and From in the mail we'll send to admin
#
host=`hostname`
cat >/tmp/maillog_analysis <<EOF
Subject: Mail Log Analysis
From: root@$host

EOF
#
# Execute the maillog analyser script and append the output to /tmp/maillog_analysis
#
/path-to/analyzer >>/tmp/maillog_analysis
#
# Mail the result to the admin account
#
/usr/sbin/sendmail -f root admin </tmp/maillog_analysis
exit

Save that to file (say /usr/local/sbin/do-maillog), edit it to set /path-to/analyzer to the path and name of your script, make it executable (chmod 755 /usr/sbin/do-maillog), and then add a crontab entry via 'crontab -e' as root like:

0 1 * * * /usr/local/sbin/do-maillog
0
 
jstansleyAuthor Commented:
Thanks....I'll give this a try and see ifit flies.  Appreciate the help
0
 
jstansleyAuthor Commented:
When I execute the file with ./maillogstats.............I get this
: bad interpreter: No such file or directory

Doing something wrong obviously...can you point it out?

Thanks
0
[Webinar] Improve your customer journey

A positive customer journey is important in attracting and retaining business. To improve this experience, you can use Google Maps APIs to increase checkout conversions, boost user engagement, and optimize order fulfillment. Learn how in this webinar presented by Dito.

 
jstansleyAuthor Commented:
This may help diagnose the problem.

If I just run bash <filename> it works
0
 
jlevieCommented:
": bad interpreter: No such file or directory" sounds like the magic line at the beginning of the script isn't exactly "#!/bin/sh". That line must have no leading or trailing whitespace and must end on only a Unix newline character. If you saved/wrote the script on a windows box and copied it to the server there'll b a carriage return on the line and it won't work.
0
 
jstansleyAuthor Commented:
That did it...odd thing now is that the script runs fine from command line but not when set to run as a CRON. Very frustrating.  Here' what the CRON looks like

Thanks for your help

Last login: Sun Sep 12 08:33:51 2004 from host-24-225-238-137.patmedia.net
[root@SMM02 root]# crontab -e


30,59 * * * 1-7 /root/maillogstats
0
 
jlevieCommented:
If a root job fails it will mail the error report to the owner of the crontab (root in this case). Have you checked root's mail to see what the error is?
0
 
jstansleyAuthor Commented:
You have been a tremendous help with this. Thanks. I found that it cannot find open sendmail to mail the results. It is just odd that I can run it manually and not via CRON. I am just getting my feet wet so to speak with LINUX and it's like learning a new language. Thanks again. Now let me see if I can get the script to run via CRON.
0
All Courses

From novice to tech pro — start learning today.