У меня была такая же проблема, когда я впервые начал использовать cron. Проблема в том, что cron работает в совершенно новой оболочке, поэтому все ваши переменные исчезли, включая путь.
Включает ли ваше задание cron FULL точный путь до perl
и script.pl
? Потому что ваш пример не имеет пути к script.pl. Поскольку переменная PATH не сохраняется при запуске задания cron. Задача cron, возможно, не выполнялась, но вызвала ошибку, отправленную на вашу учетную запись электронной почты на этом компьютере. Проверьте свою электронную почту. И в файле cron поместите MAIL=username
, чтобы электронное письмо попало в вашу учетную запись на компьютере, где запущено задание cron. Если ваша машина поддерживает отправку электронной почты за пределами этой машины, работа выполняется, установите [email protected]
.
Чтобы установить путь, укажите в файле cron PATH=/whatever:/somewhere/else
.
Также, вы редактируете свой личный файл crontab с помощью crontab -e
? Это обычно рекомендуется. Не прикасайтесь к системе crontabs.
Другая переменная, которую вы можете установить, - SHELL=/bin/bash
, чтобы использовать bash для всех заданий cron.
Кроме того, что Дженс сказал об использовании полного пути для Perl и вашего скрипта. У вас нет пути, когда задание cron выполняется, если вы не установите его в файле crontab, как в моем предложении выше.
# Suggested crontab file edited with crontab -e.
# This is a crontab comment.
MAIL=me
PATH=/usr/bin:/root
SHELL=/bin/bash
* * * * * /usr/bin/perl/perl /export/home/me/script.pl
Ключевые моменты:
- Крон бежит в его собственной оболочке, которые вы можете установить в использовании SHELL = переменной. У вас также не будет переменных, если вы их не установите.
- Используйте полный путь к perl и скрипту каждый раз.
- Cron отправляет вам электронное письмо, если выдается экранный вывод, либо через программу или сообщение об ошибке. Трудно отследить пустое электронное письмо электронной почты, где единственным выходом был возврат каретки.
- Редактируйте только файлы crontab, используя
crontab -e
на Ubuntu. Might будут отличаться от других систем.
Возможный дубликат [Как сохранить вывод cron в файле в linux] (http://stackoverflow.com/questions/34520769/how-to-save-output-a-cron-in-a- file-in-linux) – ThisSuitIsBlackNot
Несколько раз не спрашивайте [тот же вопрос] (http://stackoverflow.com/q/34520769e/176646). Если ответы на ваш исходный вопрос не являются удовлетворительными, оставьте комментарий или отредактируйте вопрос, а не попросите новый. Кроме того, вы не предоставили достаточно подробностей в любом вопросе; вы проверили журнал cron, чтобы убедиться, что ваш cronjob действительно работает? Журнал также сообщит о любых ошибках. – ThisSuitIsBlackNot