Для чего это стоит ...
Я работал над небольшим инструментом под названием lionfs , который основан на GhostFS Рафаэля С. Карвалью. . Цель состоит в том, чтобы разрешить символические ссылки, указывающие на URI . Он довольно неполный, содержит много проблем и в настоящее время поддерживает только HTTP. FUSE (Файловая система в пространстве пользователя) используется для обработки фона.
В файлах в /etc/cron.d
также должен быть указан пользователь , которому должно быть выполнено задание бегут под.
т.е.
0,15,30,45 * * * * root /backup.sh >/dev/null 2>&1
Вы также должны убедиться, что права доступа и группа owner: установлены правильно ( -rw-r - r -
и принадлежит root: root
)
Если вы единственный пользователь на этом компьютере, вы можете использовать только 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
.
Проверьте свою версию cron
.
Похоже, что если вы используете crond Диллона, вам не нужен пользователь в записи /etc/cron.d
.
Я понял это после того, как чуть не вырвал оставшиеся волосы.
У меня есть несколько записей, которые были сброшены в /etc/cron.d
различными установками. После некоторого расследования я обнаружил, что один из них работает. У него не было пользователя. Итак, я удалил пользователя из других. И они начали работать.
Для Cron из дистрибутивов *bian (например, Raspbian) вам необходимо включить параметр -l
демона Cron. Это желательно сделать с помощью конфигурационного файла /etc/default/cron
, включив EXTRA_OPTS
.
Еще я заметил, что файл в /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
Прежде всего проверьте файл /var/log/syslog
на наличие ошибок cron.d ,
sudo grep "cron.d" /var/log/syslog |grep -i error
может быть полезно для поиска ошибок , таких как неверные имена пользователей или неверный синтаксис
Если у вас их нет, проверьте наличие всех cron.d
записей в том же файле с помощью
sudo grep "cron.d" /var/log/syslog