[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 637
  • Last Modified:

Unable to run a cron job

Hi, I wrote a simple script which is working fine, if I am runing it manually. However when trying to run it as cron, it does not work. Can you suggest why -
Cron is -
12 14 * * *  /operations/services/webapps/8.1/Share/ABC.sh > /home/JoeM/temp/Test.log
Manually I run it under a service account say "MyService tcsh". So, it needs to be run under a service account. How do I do that ?
0
LordSM
Asked:
LordSM
  • 3
  • 2
  • 2
  • +2
1 Solution
 
TintinCommented:
99.9% of problems with running scripts via cron is forgetting that cronjobs run it a very minimal environment, so if your script relies on certain paths and/or environment variables, you need to ensure they are set in the script.

What user do you currently have the cronjob as?
0
 
yuzhCommented:
cron doesn't use any login ENV settings, therefore, it have trouble to run your script.

the workaround is to modify your script to use full path to command
or

use:  su - fred -c command
    use user fred's login env to run the script.

eg:
   12 14 * * *  su - JoeM -c "/operations/services/webapps/8.1/Share/ABC.sh > /home/JoeM/temp/Test.log"

or
12 14 * * *  su - root -c "/operations/services/webapps/8.1/Share/ABC.sh > /home/JoeM/temp/Test.log"
   assume that JoeM's login ENV can run the script.

also have a look at the answer in http:Q_21080002.html
0
 
LordSMAuthor Commented:
ABC.sh is a simple script, which just runs to other scripts -

#!/bin/sh
./ScriptA.sh
./ScriptB.sh

Also, would I need to to specify password for sudo acceess. So it would be something like
 12 14 * * *  sudo -u JoeM tcsh -c "/operations/services/webapps/8.1/Share/ABC.sh > /home/JoeM/temp/Test.log"
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
omarfaridCommented:
Do you schedule the job as root? If not root then you need to provide password
0
 
LordSMAuthor Commented:
no, it is to be done as a service account. So, where exactly do I specify password? in the script? how would that work or look like?
0
 
ozoCommented:
where is . when you run ABC.sh?
Do ScriptA.sh or ScriptB.sh depend on the environment?
0
 
TintinCommented:
What you need to do is create a sudo entry that doesn't require a password, eg:

serviceuser   ALL= (joem)  NOPASSWD: /operations/services/webapps/8.1/Share/ABC.sh

then your serviceuser cronjob would look like:

12 14 * * *  sudo -u joem /operations/services/webapps/8.1/Share/ABC.sh > /home/JoeM/temp/Test.log
0
 
LordSMAuthor Commented:
I think, it is working fine now. It was a typo in the path I was giving. Thanks though
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 3
  • 2
  • 2
  • +2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now