Cron says "bad command"

Geoffrey Leach geoff at hughes.net
Fri Feb 19 22:31:05 UTC 2010


On 02/18/2010 03:38:55 PM, Rick Sewill wrote:
> On Thu, 2010-02-18 at 12:05 -0700, Craig White wrote: 
> > On Thu, 2010-02-18 at 10:01 -0800, Geoffrey Leach wrote:
> > > In /etc/crontab, I have this line:
> > > 30  *  *  *  *  /home/root/fix_mail
> > > 
> > > root at mtranch[221]->ls -l /home/root/fix_mail
> > > -rwxr-xr-x 1 root root 1324 2010-02-18 07:04 /home/root/fix_mail*
> > > 
> > > Crond sees this and says (from /var/log/cron)
> > > Feb 18 07:06:01 mtranch crond[1362]: (CRON) bad command
> (/etc/crontab)
> > > 
> > > /home/root/fix_mail is a perl script,
> > > root at mtranch[222]->head -1 /home/root/fix_mail
> > > #!/usr/bin/perl
> > > 
> > > And executes correctly when run from the command line.
> > > 
> > > Any thoughts on what the source of the complaint might be?
> > ----
> > generally people make the mistake of assuming an environment where 
> a
> > cron script would not have so for example, running...
> > 
> > ls assumes the environment of /bin so if you want to bury it in a
> script
> > run from cron, you would replace 'ls' with '/bin/ls' if you want it
> to
> > run... etc. Always provide absolute paths to scripts that may
> possibly
> > be run without an environment. Don't take for granted that whatever
> you
> > get for 'echo $PATH' will also be the same for a script.

Thanks Craig and Rick for the suggestions. AFAICT the problem is with 
the processing of the crontab file itself, not with the execution of 
the command. FWIW, when the command is executed from /etc/cron.hourly 
it works without a problem.


More information about the users mailing list