Script runs good manually but failing via crontab


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Script runs good manually but failing via crontab
# 1  
Old 04-28-2014
Linux Script runs good manually but failing via crontab

Hello Gurus,

I have written small script which will start the given service if its stop .Its running fine when manually executed but its unable to run from crontab.

Code:
#!/bin/bash
SERVICENAME=rsyslog
service $SERVICENAME status > /dev/null
SYSLOGSTATUS=`echo $?`
COUNT=0
THRESHOLD=3
if [ $SYSLOGSTATUS != 0 ]
then
while [ $COUNT -le $THRESHOLD ]
do
service $SERVICENAME start > /dev/null
if [ $? != 0 ]
then
let "COUNT +=1"
else
exit 0
fi
done
echo "Problems Starting $SERVICENAME Failure" >> /tmp/Monitorscript.log
else
echo $SERVICENAME is running >> /tmp/Monitorscript.log
fi

########
Crontab entry:
* * * * * /root/Monitor_service.sh > /tmp/error.out 2>&1 

#############
cat /tmp/error.out
/root/Monitor_service.sh: line 3: service: command not found
/root/Monitor_service.sh: line 11: service: command not found
/root/Monitor_service.sh: line 11: service: command not found
/root/Monitor_service.sh: line 11: service: command not found
/root/Monitor_service.sh: line 11: service: command not found

Can someone please help me and correct what needs to done in order to fix it.
# 2  
Old 04-28-2014
Try giving full path to service. Like :
Code:
/sbin/service $SERVICENAME status > /dev/null

This User Gave Thanks to chacko193 For This Post:
# 3  
Old 04-28-2014
Thanks it worked fine for me
# 4  
Old 04-28-2014
You are expecting that the environment for a cron job is the same as when you log in. This is not the case and is a very common mistake, probably including everyone who has ever tried it.

The easiest way to work out what is different is to fire in a cron job that just does:-
Code:
env > /tmp/cron_env
set > /tmp/cron_set
alias > /tmp/cron_alias
function > /tmp/cron_function

Make sure you use cron and not at to schedule this. The at command takes your current environment (including current directory) to run a job once.

You can then run the same commands on the command line and compare the output.

A common way to fill in the blanks is to call an environment script at the start of all your cron jobs. For example:-
Code:
#!/bin/ksh
# Your normal coding comments
# Update history or whatever you like
# Blah blah blah

# Setting environment
. /full/path/my_cron_env

# Run my code
a=1
exit 0

The my_cron_env or whatever you call it is the same format as your .profile


I hope that this helps,
Robin
These 2 Users Gave Thanks to rbatte1 For This Post:
# 5  
Old 04-28-2014
rbatte1 thanks for your suggestion its useful for a learner like me.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Script only runs first time through crontab

Hello, I am trying to run a script through crontab and it runs the first time and then it does not run. I tried to run a simple script (as shown below) and I see the same issue. #!/bin/ksh clear echo "Good Morning, World." > /tmp/test123 Crontab Entry: 30 09 * * *... (9 Replies)
Discussion started by: hasn318
9 Replies

2. Shell Programming and Scripting

Job runs manually, doesn't work in crontab

I have a script (/home/admin/run_bkup.sh) that I can run manually to kick off an executable job. I want to run it in crontab, but it doesn't work. Here's the script: shell=/bin/bash today=$(date +"%m-%d-%y") /opt/CPsuite-R77/fw1/bin/upgrade_tools/upgrade_export mgt-svr-bkup-$today << EOF y... (18 Replies)
Discussion started by: df08388
18 Replies

3. Shell Programming and Scripting

Script runs manually, but not from cron

Hi, I "borrowed" a script I found online, to start a SAP router application on a Solaris 11 (SPARC) server. The script runs fine when calling it manually, but when I schedule it to run from cron, it doesn't. I don't see any warning or failure messages anywhere, just nothing happens. ... (11 Replies)
Discussion started by: bredman
11 Replies

4. UNIX for Dummies Questions & Answers

Script runs manually but not from crontab in UNIX

Hi Guys, I am executing the script called Delet.sh manually it is successfully completing the task but it is failing to run vi cron tab, I tried to pass PATH & .profile before execution but no luck, Any suggestions? Script below #!/usr/bin/ksh #set -x # Purpose : Delete folders file from... (9 Replies)
Discussion started by: Anilsa77
9 Replies

5. UNIX for Dummies Questions & Answers

Crontab script failing

Hello, A crontab script is failiing everyday but when we execute manually it runs fine Below is the script scheduled: 00 23 * * * sh /db2backup/scripts/db2_hot_backup.ksh TRAVFF > /dev/null 2>&1 Error: cat TRAVFF_online_04022014_2300.log Started : Wed Apr 2 23:00:00 EDT 2014... (2 Replies)
Discussion started by: Vishal_dba
2 Replies

6. Shell Programming and Scripting

Part of the Shell script is not running via crontab, runs fine manually

Hello Team, As a part of my job we have made a script to automate a service to restart frequently. Script having two functions when executing it's should find the existing service and kill it, then start the same service . Verified the script it's working fine when executing... (18 Replies)
Discussion started by: gowthamakanthan
18 Replies

7. Shell Programming and Scripting

Script runs fine manually but not in crontab

Hello Guys, I have scratched my head alot on this but couldn't find clue what's wrong. Can you please help me with this? My problem is as following. 1) When I manually execute following script it runs successfully with below output. bash-3.00# more smssend #!/bin/bash echo -e "<Request... (16 Replies)
Discussion started by: umarsatti
16 Replies

8. Shell Programming and Scripting

Shell Script runs good manually but not through Cron tab

Hello Every one, I have a shell script which is running fine manually, but its giving me hard time when running tru cron job. :wall:. Am using #!/usr/bin/ksh >echo $SHELL /usr/bin/ksh Cron Job is as below, it execues but dosent do what i want it to do. 47 15 * * *... (1 Reply)
Discussion started by: naren.chowdhary
1 Replies

9. Shell Programming and Scripting

Script runs manually but not correctly from crontab

Hello all, I'm new here and have a question if you don't mind helping me. I have a script that will work if I kick if off manually but not from Cron. My cron entry is this: 05,20,35,50 * * * * /scripts/status.sh > /dev/null 2>&1 The first script (works fine) is this: #!/bin/sh # #... (14 Replies)
Discussion started by: hs3082
14 Replies

10. Shell Programming and Scripting

Script runs manually but not correctly from crontab

Hi all I have this inside a shell script (bash): cd DIRECTORY find . -maxdepth 1 | sed 's#./##' | /usr/bin/xargs -I '{}' chown -Rv '{}' /DIRECTORY/'{}' All the directories in this location are named after usernames, so it simply sets the owner to that of the username of the folder. It... (5 Replies)
Discussion started by: fakesy
5 Replies
Login or Register to Ask a Question