запуск файла rake через скрипт bash, запущенный crontab - PullRequest
1 голос
/ 22 октября 2011

Я пытаюсь запустить файл RAKE из скрипта bash, запущенного crontab:

мой crontab выглядит так:

* * * * * /bin/bash ~/sites/www/tweeet/get_tweeet.sh

Мой bash-скрипт (get_tweeet.sh) выглядит так:

  1 #!/bin/bash
  2 set -x
  3 cd /var/www/tweeet/
  4 export RAILS_ENV=development
  5 rake get_tweeet >> /var/www/tweeet/test.log
  6 echo "$(date): cron job run    " >> /var/www/tweeet/test.log

Что происходит, так это то, что строка 6 выводит в test.log, а строка 5 делает сейчас - грабли не запускаются.

НО, если я вызову скрипт, используя точную строку из crontab

/bin/bash /var/www/tweeet/get_tweeet.sh

тогда это работает - я озадачен этим!

1 Ответ

1 голос
/ 23 октября 2011

Ваше непосредственное выполнение скрипта запускается, потому что он имеет всю доступную среду.Cronjob нет, даже если он принадлежит одному и тому же пользователю.Поэтому одним из решений является запуск его из оболочки полного входа в систему.В вашем crontab:

bash --login -c '/var/www/tweeet/get_tweeet.sh'

Я помню, как видел какой-то пост об этом, потенциально имеющий некоторые тонкие побочные эффекты, которые я не помню, но он работал для меня.

...