Today's Posts

BSD, Linux, and UNIX shell scripting Post awk, bash, csh, ksh, perl, php, python, sed, sh, shell scripts, and other shell scripting languages questions here.

Crontab not working

cron, crontab, shell scripts, solved

Login to Reply

Thread Tools Search this Thread
# 1  
Old 06-06-2015
Crontab not working

Hi All,

I have a script with deatils as :

[muser@server scripts]$ ls -ld catch_logs.sh 
-rwx--x--x 1 muser muser 752 Jun  5 22:36 catch_logs.sh

User crontab looks likes:

[muser@server scripts]$ crontab -l

* * * * * /opt/scripts/catch_logs.sh

Now if I run this script manually, I do get an email(configured inside script). But once this script runs via cron, no email is received.

I do not have admin rights on the system so I cannot view any /var/log/* .

Any idea why the script in not sending out email when being triggered by cron ?
# 2  
Old 06-06-2015
For the same reasons that dozens of other threads have asked about...
The environment used by cron (and passed to programs it runs), is not you login shell's environment.

You either need to have your script set up the correct environment or you need to use absolute paths to all of the files your script uses (executables, input files, and output files).

Obviously, if you don't show us your script, we can't help you fix it!
The Following User Says Thank You to Don Cragun For This Useful Post:
Junaid Subhani (06-06-2015)
# 3  
Old 06-06-2015

The script is:

It basically is monitoring a certain log file for a certain type of error. If there is a new error, it sends an email to email addresses specified in email.users .

If no new error has occurred, do nothing.



grep "ephemeral" $LIVE_FILE > $TMP

if diff  $TMP $TMP_FILE >/dev/null
        echo "Error Same"	
	#Do Nothing
        #Send Email
        ERROR=`cat $TMP`
        echo "Error occurred on `hostname`
	* This is an auto-generated email *
        " | /bin/mailx -r "noreply@company.com" -s "Error occurred on `hostname`" `cat email.users`


# 4  
Old 06-06-2015
The cronjob's output, including errors, should go to your mailbox.

Check your mail.
$ mail

# 5  
Old 06-06-2015
Hello Junaid,

Just want to add here on Scott's comment, Cron has an own reserved syslog facility, so you should have a look into /etc/syslog.conf (or the equivalent file in your distro) to see where messages of facility cron are sent. Also you can check /var/spool/mail/user_name too for same. Let us know is this helps.

EDIT: Also while checking your script I found out that line if diff $TMP $TMP_FILE >/dev/null
I think what you are trying to do here to, not to display the differance in standard output, this command will redirect output to /dev/null so each time condition will be FALSE and if I am right here then you can use following then.

Here is an example which I have tested for same.
Input files:
cat chumm1
test test1
cat chumm2
test test1

Now check this following command out.
if [[ -z $(diff chumm1 chumm2 2&>1 /dev/null)
       echo "There are differances.";
       echo "there is nothing";

Output will be as follows.
There are differances.

Also why can't you go for a variable named email_users="x@chumma.com y@chumma.com z@chumma.com .

echo "Error occurred on `hostname`
 * This is an auto-generated email *
        " | /bin/mailx -r "noreply@company.com" -s "Error occurred on `hostname`" $email_users < $ERROR

Could you please try same and let us know if that helps.

R. Singh

Last edited by RavinderSingh13; 06-06-2015 at 04:29 AM.. Reason: Added more clarification and found a little bug in user's script
# 6  
Old 06-06-2015
Ravinder, the diff is okay; the redirection of stdout does not clear the exit status.
In fact your correction is faulty:
2&>1 should be 2>&1 (redirect stderr to descriptor 1, and should be appended to also go to /dev/null), but is not needed for diff AFAIK.
Actually I don't see anything wrong in the script. Note that email.users is expected in the cron user's home directory.
The Following 2 Users Say Thank You to MadeInGermany For This Useful Post:
Junaid Subhani (06-06-2015), RavinderSingh13 (06-06-2015)
# 7  
Old 06-06-2015
There doesn't appear to be anything wrong with the script. As Don said (post#2), nearly all these things are because the interactive login and cron environments are different; perhaps the variables set in .profile, or the path searched. These things need to be deliberately set at the start of the script to match those in effect when the script is run interactively.

Read again Don's post#2.
The Following User Says Thank You to hicksd8 For This Useful Post:
Junaid Subhani (06-06-2015)
Login to Reply

« Previous Thread | Next Thread »
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Crontab is not working BPANDEY Red Hat 5 09-17-2015 11:55 AM
Script not working via crontab ash1234 Shell Programming and Scripting 1 02-09-2015 06:32 AM
Script not working via crontab ash12345 Shell Programming and Scripting 6 02-08-2015 01:34 PM
Crontab not working krebe Linux 4 02-12-2013 05:50 AM
Script not working in crontab nandan8a Shell Programming and Scripting 9 08-08-2012 09:22 PM
Crontab not working, please help samantha13 UNIX for Advanced & Expert Users 0 08-02-2012 01:25 PM
crontab not working isaacniu Solaris 6 01-09-2012 06:41 PM
crontab is not working!! getrue Red Hat 14 09-08-2011 12:06 PM
crontab not working shifahim UNIX for Dummies Questions & Answers 8 08-16-2011 09:22 AM
crontab is not working. getrue Solaris 6 07-27-2011 01:34 AM
crontab not working lg123 UNIX for Dummies Questions & Answers 2 04-24-2011 04:47 PM
Crontab entry is not working jramesh1 UNIX for Dummies Questions & Answers 1 07-27-2010 05:07 AM
crontab not working rajesh_hv UNIX for Advanced & Expert Users 4 10-28-2008 08:45 AM
crontab NOT working baanprog UNIX for Advanced & Expert Users 2 09-26-2006 01:11 PM
crontab not working right kymberm UNIX for Dummies Questions & Answers 3 07-09-2003 05:21 PM

All times are GMT -4. The time now is 11:41 AM.

Unix & Linux Forums Content Copyright 1993-2018. All Rights Reserved.
Show Password