В Ubuntu 11.10 (Oneiric Ocelot) мое задание cron работает нормально, если я использую значение по умолчанию
* * * * *
Но если я хочу, чтобы оно запускалось в 17 часов или в любое другое время никогда не запускается Мои настройки:
00 17 * * * wget http://www.abc.com/a.php
Я также пытался:
00 17 * * * root wget http://www.abc.com/a.php
Я также пытался указать путь. Возврат каретки, и я вошел в систему как root
Вот мой полный crontab:
TZ=Australia/Sydney
22 7 * * * /usr/bin/wget http://www.abc.com/a.php
22 7 * * * /bin/date >> /tmp/date.txt
---- выход - как следующие:
[ 113]Почему терминал выводит столько пустых строк после вывода записей crontab? Вы подозреваете, что ненужные строки каретки даны .... И я не дал никаких записей о каких-либо других пробелах cron, таких как .d, / daily eyc.,
Используйте только один ноль для минуты. При создании заданий cron также обычно рекомендуется использовать полный путь к используемой вами команде. Это связано с тем, что задания cron выполняются в специальной очень ограниченной среде оболочки, и ваш путь может отличаться от того, который вы используете при входе в систему. Если вы этого не знаете, вы можете легко найти его с помощью команды which:
[ 110] Еще одна вещь, последняя команда root wget http://www.abc.com/a.php
, неверна. root
не является допустимой командой. Я предполагаю, что вы хотели использовать sudo. В этом нет необходимости, если вы запускаете задание cron от имени пользователя root, т.е.
sudo crontab -e
если Ваше определение задания крона будет недопустимо, то это будет зарегистрировано /var/log/syslog
. То, что я обычно делаю, установлено задание крона для выполнения 2 минут с этого времени, затем tail -f /var/log/syslog
и гарантируйте тому вещи, выполненные как ожидалось.
Если нет никаких зарегистрированных ошибок /var/log/syslog
, но команде не удалось работать (или даже это она успешно выполнилась), крон пошлет Вам по электронной почте консольный вывод от выполненной команды. Если Вы не получаете эти электронные письма (можно заглянуть /var/spool/mail/root
) затем что-то еще идет не так, как надо. Я замечаю, что Вы не используете переключатель-Q для wget, таким образом, необходимо получить электронную почту каждый раз, когда это работает.
Наконец, 6-е поле (куда Вы помещаете корень в свой третий пример) допустимо только в системе crontab файл (/etc/crontab
или любой из /etc/cron.{d,hourly,daily,weekly,monthly}
каталоги фрагмента. Это не допустимо на crontab пользователя (который, кажется, то, что Вы используете).
Я сделал следующее для проверки того, вещи работают правильно в принципе, можно хотеть выполнить эту процедуру, чтобы, по крайней мере, гарантировать, что мы делаем вещи тот же путь:
sudo -i
). Это вызвано тем, что Вы говорите, что хотите сделать это как корень.crontab -e
. Вы будете помещены в редактора для редактирования crontab файла.Добавьте следующая строка (корректируйтесь к местному времени, таким образом, она работает за следующие 3 минуты. Дайте себе некоторое время, чтобы закончить ввести и сохранить файл).
05 10 * * * date >>/tmp/crontest.txt
crontab -l
May 30 10:05:01 snowflake CRON[4170]: (root) CMD (date >>/tmp/crontest.txt)
Наконец подтвердите это /tmp/crontest.txt
был создан и содержит запланированное время/дату.
Крон был в Unix/Linux целую вечность, он протестировал и надежный, поэтому что Вы испытываете, не ошибка, и Вы, кажется, делаете вещи правильно, таким образом, должно быть что-то еще, что это влияет на ее функционирование правильно. Надо надеяться, мы можем определить то, что это с некоторыми процедурами диагностики :)