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)