Вот что я сделал на Debian Jessie:
- установить cron через
apt-get install cron
- положить
backup_crontab
файл в/etc/cron.d/
Однако задача никогда не выполняется.
Вот некоторые выводы:
/# crontab -l
no crontab for root
/# cd /etc/cron.d && ls
backup_crontab
/etc/cron.d# cat backup_crontab
0,15,30,45 * * * * /backup.sh >/dev/null 2>&1
Что-то нужно сделать, чтобы активировать конкретный crontab или активировать «службу» cron сам по себе?
ls /etc/cron.d
эквивалентно сcd /etc/cron.d && ls
точки зрения производства. Разница лишь в том, что рабочий каталог не изменится.Ответы:
Файлы
/etc/cron.d
необходимо также перечислить пользователя о том , что работа должна быть запущена под.т.е.
Вы также должны убедиться, что права доступа и владелец: группа установлены правильно (
-rw-r--r--
и принадлежатroot:root
)источник
crontab -l
отчеты о записях cron в/var/spool/cron/crontabs/
- т.е. crontabs на пользователя ./etc/cron.d
файлы являются системными crontabs и не сообщаютсяcrontab -l
.root
в файл - простоcrontab -l
не упомянул об этом, как вы объяснили почему - спасибо за вашу помощьetc/cron.d
файл с точкой в середине имени, и задание так и не было выполнено, пока я его не переименовалЕще я заметил, что файл
/etc/cron.d
не может иметь расширение. В моем конкретном случае у меня была символическая ссылка:Ограничения имен файлов задокументированы на странице руководства по части выполнения: http://manpages.ubuntu.com/manpages/xenial/man8/run-parts.8.html , можно передать параметр --regex для переопределения формата файла.
Однако поведение cron по умолчанию осталось без расширений, см. Комментарии по адресу : https://bugs.launchpad.net/ubuntu/+source/debianutils/+bug/38022.
источник
Я думаю, что вы, вероятно, просто пропустили необходимую пустую строку в конце вашего файла cron. У меня была та же проблема, но после проверки всего перечисленного здесь (пользовательские права, имя файла, версия cron и т. Д.) Я понял, что после последней записи в моем
/etc/cron.d/own_cron
файле не было разрыва строки, и это приводит к игнорированию всего файла.источник
Если вы единственный пользователь на этом компьютере, вы можете использовать только
crontab -e
. Вам будет предложено выбрать редактор при первом запуске команды. Затем вы можете добавить это к нему:Если вы переключитесь на учетную запись обычного пользователя, вам нужно будет использовать
sudo crontab -e
для настройки сценариев, которые вы хотите запускать по расписаниюroot
.crontab -l
отображает только текущий crontab, как только вы настроите его с помощьюcrontab -e
. Если у вас есть файл cron в/etc/cron.d
/, он не будет отображаться сcrontab -l
.Вы также должны убедиться , что ваш скрипт исполняемым:
chmod +x /backup.sh
.источник
Dockerfile
так что я не могу этого сделатьcrontab -e
- но в любом случае это полезная информацияДля Cron из * bian distros (например, Raspbian) вам нужно включить
-l
параметр демона Cron. Это целесообразно сделать с помощью/etc/default/cron
конфигурационного файла, включивEXTRA_OPTS
.источник
-l
опция для демона cron авторизует расширенный набор имен файлов в/etc/cron.d
каталоге, поэтому, если файл игнорируется, поскольку в нем есть точка, то либо «добавление -l», либо «удаление точки» исправит проблему.Проверьте вашу версию
cron
.Кажется, что если вы используете crond Диллона, вам не нужен пользователь в
/etc/cron.d
записи.Я понял это после того, как чуть не выдернул оставшиеся волосы.
У меня есть несколько записей, которые были
/etc/cron.d
добавлены различными установками. После некоторого расследования я обнаружил, что один из них работает. У него не было пользователя. Таким образом, я взял пользователя из других. И они начали работать.источник