ubuntu - cronjob failing with exit code 2

7,301

Your script seems to be exiting with status 2, which cron interprets as an error.

Does it exit with status 0 if run by hand?

/usr/local/bin/sqlbackup.sh -e
echo $?

Check you're not assuming things about the environment that aren't true when run by cron. In particular use absolute paths when invoking other scripts or binaries.

Try replacing the cron job with sh -x /usr/local/bin/sqlbackup.sh -e - it should then display line-by-line execution info (I haven't ever tried it with cron though).

Share:
7,301

Related videos on Youtube

burger97979
Author by

burger97979

Updated on November 20, 2022

Comments

  • burger97979
    burger97979 over 1 year

    I have setup the following crontab -

    sudo crontab -e
    
    01 21 * * * /usr/local/bin/sqlbackup.sh -e
    

    This should run sqlbackup.sh at 21.01 every night but it never runs. here is the error log

    cron[2339]: (root) RELOAD (crontabs/root)
    CRON[31600]: (root) CMD (/usr/local/bin/sqlbackup.sh -e)
    CRON[31599]: (CRON) error (grandchild #31600 failed with exit    status 2)
    CRON[31599]: (CRON) info (No MTA installed, discarding output)
    

    I have set the permission to 777 and the owner is root. I can run the file by entering the above file path.

    • APR
      APR almost 13 years
      Post the code in /usr/local/bin/sqlbackup.sh. My guess is you are not using full paths.
  • burger97979
    burger97979 almost 13 years
    THANKS! looks like it is an error in my script, strange it runs fine in a cronjob on other servers.