Cron не выполняет задачи Ubuntu 18.04 - PullRequest
0 голосов
/ 25 марта 2020

Я искал везде и часами пробовал различные решения, но, похоже, ничего не работает ... Как видно из названия, cron просто не будет выполнять команды на моем компьютере с Ubuntu 18.04.

My /etc/crontab файл выглядит следующим образом:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
*/1 *     * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Мой тестовый скрипт представляет собой простой эхо-скрипт 'Hello world' (с именем echo), который содержится в /etc/cron.hourly:

#!/bin/sh
echo 'Hello world'

Вызов run-parts /etc/cron.hourly из любого каталога выводит «Hello world» на консоль, как и ожидалось, но задача никогда не выполняется cron. У меня также есть скрипт, который автоматически создает резервную копию базы данных MySQL в cron.hourly. Это также выполняет и создает ожидаемый файл при вызове run parts, поэтому проблема не в том, что cron не показывает вызовы echo. Однако Cron явно что-то делает, так как я получаю следующий вывод в /var/log/syslog:

...
Mar 25 03:05:01 ip-172-31-32-110 CRON[10077]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:06:01 ip-172-31-32-110 CRON[10108]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:07:01 ip-172-31-32-110 CRON[10122]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:08:01 ip-172-31-32-110 CRON[10149]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Mar 25 03:09:01 ip-172-31-32-110 CRON[10162]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Некоторые другие вещи, которые я пробовал:

  • sudo crontab -e и создание там есть новая команда cron (она выдает тот же вывод в /var/log/syslog, что и /etc/crontab)
  • , используя #!/bin/bash вместо #!/bin/sh/
  • sudo service cron restart
  • Сделано убедитесь, что в нижней части crontab
  • sudo chmod 755 echo имеется пустая строка, чтобы убедиться, что файл является исполняемым

Это доставляет мне огромную головную боль, поэтому я очень признателен за любую помощь по этому вопросу!

1 Ответ

0 голосов
/ 25 марта 2020

Хорошо, я чувствую себя невероятно глупо, что не попробовал это до публикации. Использование crontab -e (без sudo) и размещение команды там решило проблему.

Я все равно буду признателен, если кто-нибудь сможет объяснить причину этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...