Cron — це служба планування завдань на основі часу, яка є в Unix-подібних операційних системах. Користувачі планують періодичне виконання завдань (команд або сценаріїв) у фіксований час, дати або проміжки часу.
Походження та рання історія Крона
Перша реалізація cron датується версією 7 Unix. Термін «крон» походить від грецького слова «хронос», що означає час. Ця версія Unix, випущена в 1979 році, мала просту програму cron, яка виконувала завдання через визначені проміжки часу. Функціональність Cron пізніше була розширена Полом Віксі в 1987 році. Ця версія, відома як Vixie Cron, є версією, яка найчастіше встановлюється сьогодні, і це версія, яку зазвичай називають, коли люди згадують «Cron».
Розширення концепції Cron
Cron дозволяє користувачам автоматизувати технічне обслуговування та адміністрування системи, хоча його загальний характер робить його корисним для таких речей, як завантаження файлів з Інтернету та завантаження електронної пошти через регулярні проміжки часу. Середовище cron схоже на пісочницю, у якій завдання cron запускаються зі звичайного середовища оболонки.
Кожен користувач може мати власний crontab, і хоча це файли в /var/spool/, вони не призначені для безпосереднього редагування. Синтаксис виразів cron можна розбити на два основних типи синтаксису: синтаксис cron Unix і більш складний синтаксис, відомий як синтаксис виразів cron або синтаксис quartz cron.
Внутрішня структура Cron і як це працює
Cron працює на основі простого, але потужного конфігураційного файлу, відомого як файл «crontab». Цей файл містить один рядок для кожного завдання, яке має бути запущено, складається з п’яти полів часу та дати, після яких слідує команда, яку потрібно виконати у визначений час.
П'ять полів представляють:
- Хвилини після години (0 – 59)
- Годин в день (0 – 23)
- Днів у місяці (1 – 31)
- Місяці в році (1-12)
- Дні тижня (0 – 7, де 0 і 7 – неділя)
Поле команди містить завдання, яке має бути запущено в час, зазначений у перших п’яти полях.
Основні характеристики Cron
Основні функції Cron включають:
- Це дозволяє виконувати завдання автоматично у фоновому режимі через рівні проміжки часу.
- Він надає гнучку платформу для планування завдань (сценаріїв або команд) із різними одиницями часу.
- Кожен користувач може мати власний файл crontab.
- Завдання Cron можна запланувати для виконання по хвилинах, годинах, днях тижня, днях місяця та місяцях року.
- Cron надає простий і ефективний спосіб автоматизації різних системних завдань.
Типи Cron
Роботи Cron загалом можна класифікувати наступним чином:
Тип | опис |
---|---|
Перезавантаження | Запускається один раз під час запуску. |
Анакрон | Виконується з інтервалами, указаними в днях. |
Система Cron | Зберігаються в /etc/crontab і в каталозі /etc/cron.d/, вони призначені для всієї системи. |
Користувач Cron | Кожен користувач може мати свої власні, і вони зберігаються в /var/spool/cron/crontabs/. |
Використання Cron, проблеми та їх вирішення
Cron корисний для автоматизації завдань, але необережне використання може призвести до проблем. Наприклад, неправильно налаштоване завдання cron може призвести до високого використання ЦП. Крім того, cron надсилає результати своїх завдань електронною поштою лише тому користувачеві, від якого вони виконуються. Це може призвести до пропущених помилок, якщо не перевіряти регулярно.
Загальні рішення цих проблем включають:
- Регулярна перевірка високого використання ЦП і переналаштування або зупинка непотрібних завдань.
- Переконайтеся, що всі команди та сценарії виконуються правильно, перш ніж установлювати їх як завдання cron.
- Перенаправлення вихідних даних у файл журналу або налаштування поштового сервера для більш ефективного моніторингу завдань cron.
Порівняння з подібними інструментами
Існують інші планувальники завдань, схожі на cron, такі як таймери anacron і systemd. Основні відмінності між ними можна підсумувати так:
Інструмент | опис |
---|---|
Cron | Підходить для завдань, які потрібно виконувати в певний час дня. Не виконує пропущених завдань. |
Анакрон | Підходить для завдань, які потрібно виконувати раз на день/щотижня/місяця. Виконає пропущені завдання, коли машина знову підключиться до мережі. |
Systemd | Підходить для більш складних сценаріїв, оскільки пропонує більше можливостей і добре інтегрується з сучасними дистрибутивами Linux. |
Майбутні перспективи та відповідні технології
Оскільки системи на основі Unix продовжують розвиватися, Cron також розвивається. Незважаючи на появу більш просунутих планувальників завдань, таких як systemd, простота та потужність Cron гарантують, що він залишається у загальному використанні сьогодні.
Нещодавня тенденція до контейнерних програм і архітектур мікросервісів також принесла нові способи використання Cron. Наприклад, Kubernetes, популярна платформа оркестровки контейнерів, має функцію, відому як CronJobs, яка схожа на Cron у системах на основі Unix.
Проксі-сервери та Cron
Проксі-сервери можна ефективно використовувати в поєднанні з Cron для автоматизації певних завдань. Наприклад, якщо у вас є сценарій, який потребує регулярного доступу до веб-сайту або API через проксі-сервер, ви можете налаштувати завдання cron для запуску цього сценарію через певні проміжки часу.
Cron також можна використовувати для ротації проксі через визначені проміжки часу, зменшуючи ймовірність блокування будь-якого окремого проксі. Наприклад, проксі-сервіси OneProxy можна автоматизувати за допомогою Cron для таких завдань, як збирання даних, автоматизація завдань у соціальних мережах тощо.
Пов'язані посилання
Щоб отримати додаткові відомості про Cron, розгляньте такі ресурси: