De vorige blog post vermelde reeds dat drush cron ook kan worden opgeroepen vanuit crontab. Hoewel dit nogal straightforward leek, blijkt het toch voor enkele problemen te zorgen.
Wat je moet doen om drush te laten lopen vanuit crontab is:
$ crontab -e * * * * * drush -r /path/to/drupal
Zonder gevolg... Ik probeerde ook om het volledige adres op te geven naar drush install
$ crontab -e * * * * * /usr/local/bin/drush -r /path/to/drupal
...maar ook dit werkte niet voor mij.
Onderstaand is de code om de output van je commando te zien
$ tail -f /var/mail/root
Waarom? Blijkt dat de omgevingsvariablen niet dezelfde zijn wanneer het commando wordt opgeroepen vanuit terminal als vanuit crontab.
Probeer nu dit:
$ crontab -e * * * * * env > /tmp/cronenv.log
$ env > /tmp/bashenv.log
$ diff /tmp/bashenv.log /tmp/cronenv.log
In mijn geval werkte het om PATH te kopiƫren naar het hoofd van crontab:
$ crontab -e PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0 * * * * /usr/bin/drush -r /path/to/drupal cron