Сценарий выполняется успешно в командной строке, но не как cronjob

У меня есть сценарий удара, который запускает рубиновый скрипт, который выбирает мою подачу Твиттера.

## /home/username/twittercron

#!/bin/bash

cd /home/username/twitter
ruby twitter.rb friends

Это работает успешно в командной строке.

/home/username/twittercron

Но когда я пытаюсь выполнить его как cronjob, это работало, но не смогло выбрать подачу.

## crontab -e

*/15 * * * * * /home/username/twittercron

Сценарий был chmod +x. Не уверенный, почему это как таково. Какие-либо идеи?

5
задан JasonOng 8 March 2010 в 01:00
поделиться

4 ответа

Ruby Version Manager (rvm) вызывал проблему. Пришлось вызывать скрипт в cron вот так.

*/15 * * * * bash -c 'source /home/username/.rvm/scripts/rvm && /usr/bin/env ruby /home/username/twitter/twitter.rb friends'
11
ответ дан 18 December 2019 в 07:29
поделиться

проверьте свою почту и посмотрите, есть ли сообщения об ошибках. Добавьте отладку в ваш сценарий bash, например, echo done> debug.log в последней строке и посмотрите, создан ли debug.log . удалите ## / home / username / twittercron из своего скрипта и поместите #! / bin / bash в первую строку.

*/15 * * * * * /bin/bash /home/username/twittercron
0
ответ дан 18 December 2019 в 07:29
поделиться

В вашем crontab слишком много * .

0
ответ дан 18 December 2019 в 07:29
поделиться

Вам необходимо указать абсолютный путь к выполняющейся команде (или через env).

*/15 * * * * * /usr/bin/env sh /home/username/twittercron

Или:

*/15 * * * * * /usr/bin/env ruby /home/username/twitter/twitter.rb friends
0
ответ дан 18 December 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: