Как мне отладить задание cron, которое выполняет сценарий, но сценарий кажется не завершенным? - PullRequest
2 голосов
/ 06 мая 2011

У меня есть работа cron scrape.sh, которая выглядит следующим образом:

#!/bin/bash
touch rage
cd /etc/myproject/scraper
scrapy crawl foosite --set FEED_URI=../feeds/foosite.xml --set FEED_FORMAT=xml
scrapy crawl barsite --set FEED_URI=../feeds/barsite.xml --set FEED_FORMAT=xml

Когда он запускает файл rage, он создается, и, судя по моему системному журналу, он запускается как root, поэтому права доступа не должны быть проблемой.

May  6 17:35:01 server CRON[10233]: (root) CMD (/etc/myproject/scraper/scrape.sh)
May  6 17:40:01 server CRON[17804]: (root) CMD (/etc/myproject/scraper/scrape.sh)

Когда я запускаю scrape.sh, он выполняется должным образом и помещает файл foosite.xml в каталог ../feeds, каталог существует и при запуске заданий cron становится пустым. Что я могу сделать, чтобы решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 06 мая 2011
  1. Если бы я собирался угадать проблему это была проблема окружающей среды (например, скрапа не в пути).
  2. Для отладки убедитесь, что ваша задача cron отправляет стандартную ошибку и стандартную ошибку в файл журнала / или syslog
2 голосов
/ 06 мая 2011

Может быть, командная терапия не найдена?Задания Cron обычно получают среду оболочки, отличную от интерактивных оболочек, поэтому, возможно, в вашей переменной PATH отсутствует scrapy, и вам следует использовать /some/full/path/to/scrapy.

Если это не поможет, попробуйте перенаправитьstdout и stderr для некоторых файлов, чтобы вы могли видеть, что выводится?

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-3.html

...