DEV Community

Alejandro Riera
Alejandro Riera

Posted on • Originally published at ariera.github.io on

TIL: How to debug cron jobs

Today I learned how to properly debug cron jobs, thanks to https://serverfault.com/a/85906.

They key is to recreate the correct environment in which your scripts get executed. I’m going to do this for root but you can do this with every user.

First: edit your crontab and add one line

crontab -e * * * * * /usr/bin/env > /root/cron-env 
Enter fullscreen mode Exit fullscreen mode

Once it has had the chance to execute once you can remove it.

Second: let’s create a new script called run-as-cron that will run your scripts with the correct environment cron is running.

cd /root touch run-as-cron chmod +x run-as-cron vim run-as-cron #!/bin/bash /usr/bin/env -i $(cat /root/cron-env) "$@" 
Enter fullscreen mode Exit fullscreen mode

Finally, debug your problematic script like this:

/root/run-as-cron /the/problematic/script --with arguments --and parameters 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)