Найчастіша причина, коли я бачив, як крон виходить з ладу в неправильно зазначеному графіку. Треба визначати роботу, заплановану на 23:15, 15 23 * * *
замість * * 11 15 *
або 11 15 * * *
. День тижня для робочих місць після півночі також плутається MF - це 2-6
після півночі, ні 1-5
. Конкретні дати зазвичай є проблемою, оскільки ми рідко їх використовуємо * * 3 1 *
не 3 березня. Якщо ви не впевнені, перевірте свої графіки роботи в Інтернеті за адресою https://crontab.guru/ .
Якщо ваша робота з різними платформами, що використовують непідтримувані параметри, такі як 2/3
часові специфікації, також може спричинити збої. Це дуже корисний варіант, але не доступний повсюдно. Я також стикався з проблемами зі списками, як 1-5
або 1,3,5
.
Використання некваліфікованих шляхів також спричинило проблеми. Шлях за замовчуванням зазвичай, /bin:/usr/bin
тому виконуватимуться лише стандартні команди. Ці каталоги зазвичай не мають потрібної команди. Це також впливає на сценарії, що використовують нестандартні команди. Інші змінні середовища також можуть бути відсутніми.
Знебарвлення наявного кронтабу повністю викликало у мене проблеми. Тепер завантажую з копії файлу. Це можна відновити з існуючого кронтабу, використовуючи, crontab -l
якщо він стає клоберованим. Я зберігаю копію crontab у ~ / bin. Він коментується по всьому і закінчується рядком # EOF
. Це щодня перезавантажується із запису на кронтабній версії, наприклад:
#! / usr / bin / crontab
# Перезавантажте цей кронтаб
#
54 12 * * * $ {HOME} / bin / crontab
Команда перезавантаження вище покладається на виконуваний crontab з нарізною ланкою, що працює під керуванням crontab. Деякі системи вимагають запуску crontab у команді та вказівці файлу. Якщо каталог загальнодоступним, я часто використовую crontab.$(hostname)
як ім'я файлу. Це врешті виправить випадки, коли неправильний crontab завантажується на неправильний сервер.
Використання файлу забезпечує резервну копію того, що має бути crontab, і дозволяє тимчасові зміни (єдиний раз, коли я використовую crontab -e
), резервне копіювання автоматично. Існують заголовки, які допомагають правильно встановити параметри планування. Я додав їх, коли недосвідчені користувачі редагували б кронтаб.
Рідко я стикаюся з командами, які потребують введення користувача. Вони не спрацьовують під crontab, хоча деякі працюватимуть із перенаправленням вводу.
crontab -e
щоб крон впливав. Наприклад, використовуючи vim, я редагую файл і використовую:w
для його запису, але завдання не додається в cron, поки я також не вийду. Тому я не буду бачити роботу до того, як я:q
теж.