Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I'm trying to use cron for the first time, and I'm stuck.

I'm using Ubuntu 10.10, and the following is my /etc/crontab file. The only modification that I've made is appending the last line.

I've verified that cron is running, and the other jobs here run, but the last one does not.

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
21 22   * * *   root    /etc/mycron/myscript.sh > /home/me/stuff/log/cron.log

I've checked $ sudo grep CRON /var/log/syslog and found evidence of the hourly jobs, but nothing for the new job.

I've looked for cron.allow and cron.deny files, but they don't seem to exist on my machine.

Being fairly new to Linux, and completely new to cron and crontab there are so many things that I might be doing wrong, I appreciate any suggestions.

share|improve this question

1 Answer 1

up vote 1 down vote accepted

I hate to ask the obvious, but is /etc/mycron/myscript.sh executable? You can check with:

ls -l /etc/mycron/myscript.sh

Should generally see 3 x's. If not, try:

chmod -V +x /etc/mycron/myscript.sh

You can also use sh or bash to run the script, using this line in the cron instead:

sh /etc/mycron/myscript.sh
share|improve this answer
    
It is executable, thanks for asking. (Really) I'm curious what difference adding sh makes. (I'm trying it, I just don't have any idea what it could mean if it works.) –  Eric Wilson Sep 6 '11 at 2:02
1  
OK, adding sh made it work. What was cron trying to do when it wasn't there? I'd really appreciate some insight here, otherwise I'll superstitiously add sh to cron jobs indefinitely. –  Eric Wilson Sep 6 '11 at 2:10
    
@EricWilson Cron executes the command through a shell. With a non-executable myscript.sh isn't executable, that shell emits the error message /etc/mycron/myscript.sh: Permission denied and moves on to the next instruction (i.e. exits, since this is the only instruction). The error message is sent through local e-mail to your account, like all output from a cron job. If you haven't installed an MTA, the cron job output is lost. –  Gilles Sep 6 '11 at 7:22
    
@Giles But my script was executable. I had executed it from the command line, and confirmed that all three xs were there. –  Eric Wilson Sep 6 '11 at 10:07
    
How about the shebang? Does the first line say: #!/bin/sh or #!/bin/bash -- this may be your problem. –  laebshade Sep 11 '11 at 21:55

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.