Я установил новую Ubuntu 16.04 для замены моего Windows OS.
Я пытаюсь установить cronjobs для выполнения mangento Виа Ampps, 2.1, softaculous. Программное обеспечение было успешно установлено (и ampps и магнето), и это работает хорошо. Я пытаюсь установить crontab, но кажется, что существует ошибка на первой строке вторые 25.
Это - то, что я пытаюсь включить к crontab для пользователя Ampps, с помощью команды sudo crontab -e -u ampps
* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /usr/local/ampps/www/localshop.dev/var/log/magento.cron.log
* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev/update/cron.php >> /usr/local/ampps/www/localshop.dev.dev/var/log/update.cron.log
* * * * * /usr/local/ampps/php-5.6/etc
/usr/local/ampps/www/localshop.dev.dev/bin/magento setup:cron:run >> /usr/local/ampps/www/localshop.dev.dev/var/log/setup.cron.log
Что я делаю неправильно?
Я следовал сообщению об ошибке в магнето 2,1 администратора, которые упомянули эту ссылку поиска и устранения неисправностей для версии 2.0 и к этому руководству по конфигурированию
Каждая crontab строка должна запуститься со времени, в которое команда должна быть выполнена и затем команда. Общий формат:
Min Hour Day Month DayOfWeek Command
Так, для выполнения command
в 10:15 каждое воскресенье Вы сделали бы:
15 10 * * 0 command
я не уверен, каковы Ваши команды, но у Вас есть строки, которые не запускаются с определения времени. Я не понимаю, каковы строки как это:
* * * * * /usr/local/ampps/php-5.6/etc
Это - время, но никакая команда. Вы даете ему каталог. И строки как это имеют команды, но никакое время:
/usr/local/ampps/www/localshop.dev/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /usr/local/ampps/www/localshop.dev/var/log/magento.cron.log
Так, удостоверьтесь, что Вы следуете за форматом, и необходимо быть в порядке. Если это не ясно, отредактируйте свой вопрос и объясните, что управляет, чтобы Вы попытались работать.
От моего предыдущего опыта это происходило из-за символа CR/LF перед первой строкой крона (так как это было отредактировано из Windows не Linux непосредственно). Я заметил и удалил тот символ из Hex-редактора.
Этот вид ошибки может также произойти, при попытке сбросить переменные крона к пустым значениям как это:
MAILTO=me@example.com
* * * * * do some stuff with error reporting
MAILTO=
* * * * * do another stuff too verbose to receive emails
Примечание пустая строка после MAILTO=
в строке 3. Это приведет к сообщению:
crontab: installing new crontab
"/tmp/crontab.AvDwzo":3: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit?
корректный способ сбросить MAILTO
переменная должна использовать пустые кавычки, как это:
MAILTO=''
Hope это помогает.
В моем случае (и это, кажется, случай OP также), проблема была то, что у меня была новая строка в команде, которая будет выполняться, что-то вроде этого
5 0 * * * some_command -some_param
-another_param
, строка переполнения, конечно, интерпретировалась как новая запись крона, и крон законно жаловался, что запуск , что строка не была допустимым мелким идентификатором.
Эта ошибка также происходит, если Ваш/var/spool/cron раздел на 100% полон. Проверьте свое свободное пространство на диске и удостоверьтесь, что у Вас есть несколько байтов, свободных там.
Следующая команда решила мою проблему с этой проблемой
perl -pi -e 's|\r\n|\n|' /var/spool/cron/root
Проблема состояла в том, что разделители строки Windows (CRLF) нарушили основанный на Linux крон. Изменение разделителей, чтобы быть разделителями строки Linux (LF) решило проблему.