Задание Cron вызывает скрипты bash и python - PullRequest
0 голосов
/ 29 апреля 2011

Хорошо, у меня есть скрипт bash, который просто загружает веб-страницу, а затем я использую python для извлечения некоторых данных из загруженной страницы.Итак, мой bash-скрипт выглядит так:

#!/bin/bash
html_file="web_page.html"
wget -O /home/michael/Documents/CS288/homework7/web_page.html http://markets.usatoday.com/custom/usatoday-com/html-mktscreener.asp?exchange=13\&screen=1
python hw_7_2.py $html_file

Теперь, когда я просто запускаю этот bash-скрипт из командной строки, он работает нормально, wget запускается, а затем выполняется мой скрипт на python, однако, когда я его установилкак задание cron, wget будет работать, но скрипт python никогда не будет выполнен.Я на самом деле не настроил работу cron, так что, думаю, проблема в этом.Вот как выглядит мой файл crontab

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 * * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh

Ответы [ 3 ]

1 голос
/ 29 апреля 2011

Cron часто дает сбой из-за проблем типа $PATH / working directory. Вы устанавливаете $PATH, но я не удивлюсь, если ни ваш bash-скрипт, ни ваш python-скрипт не будут работать, если вы не в нужном каталоге.

Попробуйте использовать более абсолютные пути и посмотрите, прояснит ли это ситуацию. Аналогично, попробуйте выполнить команду cron самостоятельно из / или из другого места и посмотрите, работает ли она для вас.

1 голос
/ 29 апреля 2011

попробуйте заменить строку cron на:

* * * * * michael /home/michael/Documents/CS288/homework7/usatoday_runner.sh > /tmp/why_is_this_failing.log 2>&1

ответ может быть в /tmp/why_is_this_failing.log

0 голосов
/ 29 апреля 2011

Возможно, в вашем скрипте не установлены переменные окружения.Когда запускается задание cron, у него нет информации о вашем обычном профиле - он не загружает ваш .profile / .bashprofile (более простой путь, JAVA_HOME и т. Д.). Один из возможных вариантов - получить сценарий для вашего .profile и т. Д.

...