Как зафиксировать “Плохую минуту” ошибка при установке нового crontab

Я установил новую 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 и к этому руководству по конфигурированию

7
задан 1 September 2017 в 03:29

6 ответов

Каждая 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

Так, удостоверьтесь, что Вы следуете за форматом, и необходимо быть в порядке. Если это не ясно, отредактируйте свой вопрос и объясните, что управляет, чтобы Вы попытались работать.

8
ответ дан 23 November 2019 в 06:18

От моего предыдущего опыта это происходило из-за символа CR/LF перед первой строкой крона (так как это было отредактировано из Windows не Linux непосредственно). Я заметил и удалил тот символ из Hex-редактора.

2
ответ дан 23 November 2019 в 06:18

Этот вид ошибки может также произойти, при попытке сбросить переменные крона к пустым значениям как это:

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 это помогает.

2
ответ дан 23 November 2019 в 06:18

В моем случае (и это, кажется, случай OP также), проблема была то, что у меня была новая строка в команде, которая будет выполняться, что-то вроде этого

5 0 * * * some_command -some_param
-another_param

, строка переполнения, конечно, интерпретировалась как новая запись крона, и крон законно жаловался, что запуск , что строка не была допустимым мелким идентификатором.

0
ответ дан 23 November 2019 в 06:18

Эта ошибка также происходит, если Ваш/var/spool/cron раздел на 100% полон. Проверьте свое свободное пространство на диске и удостоверьтесь, что у Вас есть несколько байтов, свободных там.

1
ответ дан 23 November 2019 в 06:18

Следующая команда решила мою проблему с этой проблемой

perl -pi -e 's|\r\n|\n|' /var/spool/cron/root

Проблема состояла в том, что разделители строки Windows (CRLF) нарушили основанный на Linux крон. Изменение разделителей, чтобы быть разделителями строки Linux (LF) решило проблему.

0
ответ дан 23 November 2019 в 06:18

Другие вопросы по тегам:

Похожие вопросы: