Проблема запуска небольшого скрипта как задания cron - PullRequest
2 голосов
/ 09 апреля 2011

У меня проблемы с планированием и запуском скрипта через задание cron.Я на Linux (Ubuntu), это VPS.Что я делаю, я поместил эту строку в файл crontab, который находится здесь: / etc / crontab Я написал:

*/15 *    * * *   www-data  php /var/www/abs/phpscript.php

Я дал 777 для файла и после записи выше в crontab, я запускаю команду:

crontab crontab

Затем, спустя почти некоторое время, я получил в своем файле / var / mail / username письмо, в котором говорится: / bin / sh: root: not found

Так что я не могучтобы понять в чем проблема.

Я также запускаю phpinfo, и он показывает третью переменную как APACHE, что, вероятно, означает, что PHP работает как модуль apache.

Пожалуйста, расскажите, что может быть возможным решением.

заранее спасибо всем, кто попытается решить мою проблему.

Ответы [ 3 ]

4 голосов
/ 09 апреля 2011

Вы также можете попробовать запустить его с помощью "wget ​​-q -O"

или

*/15 * * * * lynx -dump "url"  > /dev/null

Примеры Wget:

*/15 * * * * wget -O /dev/null 'http://www.mydomain.com/document.php?&user=myuser&password=mypass' >/dev/null

Если вам нужно опубликовать данные, вы можете использовать

- post-data "логин = пользователь и пароль = пароль"

*/15 * * * * wget -O /dev/null 'http://www.mydomain.com/document.php?&user=myuser&password=mypass' --post-data 'foo=bar' >/dev/null
2 голосов
/ 09 апреля 2011

Если вы редактировали /etc/crontab, вам следует перечитать предупреждение в верхней части файла:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

Запуск crontab(1) в файле /etc/crontab, вероятноиспортил корневой файл пользователя crontab(5) (тот, который хранится в /var/spool/cron/crontabs/).Я предлагаю запустить crontab -e от имени root , чтобы отредактировать файл crontab и удалить все записи, идентичные записям из /etc/crontab.( Может быть вы только что испортили свою личную crontab(5) - если crontab -e от имени пользователя root ничего не показывает, запустите crontab -e под своей личной учетной записью и посмотрите, не дублировались ли записи всей системыв ваш собственный crontab(5).)

Я не знаю, на каком файле вы запускали chmod 777, но это, вероятно, было ненужным.Вы действительно должны установить свои разрешения как можно более строгими, чтобы ограничивать результаты злонамеренных атак или непреднамеренных ошибок.

0 голосов
/ 24 января 2013

Вы используете crontab как пользователь, что означает, что вы не можете указать пользователя в cron.

Шаблон, из которого вы позаимствовали свой пример, предназначен для системного (корневого) cron.

Удалите имя пользователя и повторите попытку.

...