In /etc/crontab, I have this line: 30 * * * * /home/root/fix_mail
root@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@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?
Thanks.
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@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@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.
Craig
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@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@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.
Craig
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
Perhaps add an assignment to the BASH_ENV variable in the crontab file? If your bash startup script is /root/.bash_profile, add BASH_ENV=/root/.bash_profile as the first line of the crontab file.
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@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@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.
On 02/18/2010 10:01 AM, Geoffrey Leach wrote:
In /etc/crontab, I have this line: 30 * * * * /home/root/fix_mail
root@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@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?
Thanks.
You have your /root in /home?? That's unusual... Maybe there's some permissions problem with /home?
On 02/19/2010 02:51:56 PM, Konstantin Svist wrote:
On 02/18/2010 10:01 AM, Geoffrey Leach wrote:
In /etc/crontab, I have this line: 30 * * * * /home/root/fix_mail
root@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@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?
Thanks.
You have your /root in /home?? That's unusual... Maybe there's some permissions problem with /home?
Hmmm .. just can't get no respect :-)
It may be unusual to have /root in /home, but it simplifies the intallation of new versions of Fedora.
I finally gave in and read the source. It appears that cron requires a user name before the command. That is,
* * * * * <username> command to be executed
in /etc/crontab entries.
Geoffrey Leach wrote:
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
[SNIP]
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.
Ah, yes. The format of /etc/crontab is different from that for individual users' crontab files. You need to include the user ID:
30 * * * * root /home/root/fix_mail ^^^^