On Thursday, 30 August 2012 09:33:41 UTC-4, zhangjingqiang wrote:
OS : Ubuntu 12.04
When I run backup perform -t my_backup ,I can works.
But when I check the task crontab -l ,it as this:
0 22 * * * /bin/bash -l -c 'backup perform -t my_backup'
Run cat /etc/crontab to check my cron configuration file,it's:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
It's different between /bin/bash and /bin/sh ,how to do?
Cron runs commands with a very limited environment - PATH, for instance, may be missing things that it would have in your normal login shell. It's typically a good idea to put an explicit path to any executable needed - so /some/path/to/backup instead of just backup.
Digging around in the code for 'backup' also shows that you may want to pass --root-path=/wherever/your/app/lives to the script as well, to ensure that it can find the config files, etc that it needs.
--Matt Jones