Crontab Failure Emails - /bin/sh: 1 : ambiguous redirect

Crontab Failure Emails


The emails vary in subject line but include:

/bin/sh: 1 : ambiguous redirect - Cron <root@host> /usr/local/cpanel/bin/dcpumon >/dev/null 2>&1

/bin/sh: 1 : ambiguous redirect - Cron <root@host> /usr/local/cpanel/whostmgr/bin/dnsqueue > /dev/null 2>&1

/bin/sh: 1 : ambiguous redirect - Cron <root@host> /usr/local/cpanel/scripts/cpremotetaskadmin > /dev/null 2>&1


Cause:

root's crontab at /var/spool/cron/root was modified outside Linux at some point and corrupted for the line endings.

Problem Test:

Run the following conmmand.

# file /var/spool/cron/root

The output should be like this if there is no error with the file: /var/spool/cron/root: ASCII text

If you are getting an output like the folowing, the file is modified with some unsupported terminators.

/var/spool/cron/root: ASCII text, with CRLF, LF line terminators

Solution:

# strings /var/spool/cron/root > /var/spool/cron/root.tmp
# mv /var/spool/cron/root.tmp /var/spool/cron/root

Here, strings command convert the characters in the file into unix readable format. So all the unsupported characters will be supported by unix.

Run the following command to test the problem is soved,
# file /var/spool/cron/root
/var/spool/cron/root: ASCII text

If you are getting the above output, the problem of getting cron failure emails solved.

Note:- The problem can occur with any crontab files. So, if you have any problem with any other crontab files, you can solve then by the above method.
You can also use
# dos2unix -b /var/spool/cron/root
instead of strings command

Leave a Reply