Crontab никогда не запускается, пока находится в /etc/cron.d

Для чего это стоит ...

Я работал над небольшим инструментом под названием lionfs , который основан на GhostFS Рафаэля С. Карвалью. . Цель состоит в том, чтобы разрешить символические ссылки, указывающие на URI . Он довольно неполный, содержит много проблем и в настоящее время поддерживает только HTTP. FUSE (Файловая система в пространстве пользователя) используется для обработки фона.

32
16.07.2016, 21:43
6 ответов

В файлах в /etc/cron.d также должен быть указан пользователь , которому должно быть выполнено задание бегут под.

т.е.

0,15,30,45 * * * * root /backup.sh >/dev/null 2>&1

Вы также должны убедиться, что права доступа и группа owner: установлены правильно ( -rw-r - r - и принадлежит root: root )

{{ 1}}
81
27.01.2020, 19:37

Если вы единственный пользователь на этом компьютере, вы можете использовать только crontab -e . Вам будет предложено выбрать редактор при первом запуске команды.Затем вы можете добавить к нему следующее:

0,15,30,45 * * * * /backup.sh >/dev/null 2>&1

Если вы перейдете на обычную учетную запись пользователя, вам нужно будет использовать sudo crontab -e для настройки сценариев, которые вы хотите запланировать для запуска от имени root .

crontab -l отображает только текущий crontab, если вы настроили его с помощью crontab -e . Если у вас есть файл cron в /etc/cron.d /, он не будет отображаться с помощью crontab -l .

Вам также необходимо будет убедиться, что ваш сценарий выполняется с помощью: chmod + x /backup.sh.

2
27.01.2020, 19:37

Проверьте свою версию cron .

Похоже, что если вы используете crond Диллона, вам не нужен пользователь в записи /etc/cron.d .

Я понял это после того, как чуть не вырвал оставшиеся волосы.

У меня есть несколько записей, которые были сброшены в /etc/cron.d различными установками. После некоторого расследования я обнаружил, что один из них работает. У него не было пользователя. Итак, я удалил пользователя из других. И они начали работать.

1
27.01.2020, 19:37

Для Cron из дистрибутивов *bian (например, Raspbian) вам необходимо включить параметр -l демона Cron. Это желательно сделать с помощью конфигурационного файла /etc/default/cron, включив EXTRA_OPTS.

3
27.01.2020, 19:37

Еще я заметил, что файл в /etc/cron.dне может иметь расширения. В моем конкретном случае у меня была символическая ссылка:

# my-job.crontab
* * * * * root echo "my job is running!" >> /tmp/my-job.log

$: ln -sf /home/me/my-job.crontab /etc/cron.d/
# This did not work -> job would not run

$: ln -sf /home/me/my-job.crontab /etc/cron.d/my-job
# This did work -> job ran fine

Ограничение имени файла задокументировано на справочной странице -части :http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html. параметр регулярного выражения --для переопределения формата файла.

Однако поведение cron по умолчанию осталось без расширений, см. комментарии в:https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022

20
27.01.2020, 19:37
  1. Прежде всего проверьте файл /var/log/syslogна наличие ошибок cron.d ,

    sudo grep "cron.d" /var/log/syslog |grep -i error

    может быть полезно для поиска ошибок , таких как неверные имена пользователей или неверный синтаксис

  2. Если у вас их нет, проверьте наличие всех cron.dзаписей в том же файле с помощью

    sudo grep "cron.d" /var/log/syslog

2
27.01.2020, 19:37

Теги

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