Croncron — утиліта в операційних системах Unix і Linux, яка дозволяє користувачам виконувати команди або скрипти (групи команд) автоматично в заданий час. Назва cron походить від грецького слова χρόνος (chronos), що означає «час», помилково записаного як cron Кеном Томпсоном.[1] Файл завдань crontabКожен користувач системи має свій файл завдань Параметри запуску crontabДля редагування файлу crontab використовується спеціальна однойменна команда crontab, яка дозволяє не переривати процес cron на час редагування:
Таблиця crontabКожний рядок у файлі crontab складається з п'яти колонок, що відокремлюються пробілами чи табуляціями. Стовпчики задають час виконання (Хвилина, Година, День, Місяць, День тижня), в них може міститися число, список чисел, або символ '*'. Решта символів в рядку інтерпретуються як виконувана команда та її параметри. # .---------------- хвилина (0 - 59)
# | .------------- година (0 - 23)
# | | .---------- день місяця (1 - 31)
# | | | .------- місяць (1 - 12) АБО jan,feb,mar,apr ...
# | | | | .---- день тижня (0 - 6) (неділя=0 чи 7) АБО sun,mon,tue,wed,thu,fri,sat
# | | | | |
* * * * * виконувана команда
ОператориЄ кілька способів визначення кількох значень часу для однієї команди:
Нестандартні макросиДеякі реалізації
ПрикладЩодня через одну хвилину після опівночі видалити вміст файлу 01 00 * * * cat /dev/null > /www/apache/logs/error_log
Змінні середовища що впливають на роботу cron
Приклад файлу crontab#Як звичайно, з символу # починаються коментарі
# Як командний інтерпретатор використовувати /bin/sh:
SHELL=/bin/sh
# Результати роботи надсилати на цю адресу
MAILTO=my@example.org
# Додати в PATH
PATH=$PATH:$HOME/bin
# # # # Тут починаються завдання
# Виконувати кожен день в 0 годин 5 хвилин, результат складати в log/daily:
5 0 * * * $HOME/bin/daily.job>> $HOME/log/daily 2> & 1
# Виконувати першого числа кожного місяця:
15 14 1 * * $HOME/bin/monthly
# Виконувати кожного робочого дня в 22:00:
0 22 * * 1-5 echo "Пора додому"
23 */2 * * * echo "Виконується в 0:23, 2:23, 4:23 і т. д."
5 4 * * sun echo "Виконується в 4:05 в неділю"
0 0 1 1 * echo "З новим роком!"
15 10,13 * * 1,4 echo "Цей напис виводиться в понеділок і четвер в 10:15 та 13:15"
ІсторіяРанні версіїВ Unix Версії 7 cron був написаний Браяном Керніганом і був демоном (програмою-сервісом). Він працював за простим алгоритмом:
В університеті Пердью в кінці 1970-х років в експерименті для 100 користувачів система VAX з таким алгоритмом зазнала занадто велике навантаження. Наступні версії cron були створені з метою розширити можливості для системи Unix, яка має багатьох користувачів. Алгоритм, який використовується в цих cron, виглядає таким чином:
Сучасні версіїЗараз існує декілька різних утиліт з функціональністю cron. Найпоширенішим з них є Vixie cron (створено 1987 року). Версія 3 Vixie cron була випущена в кінці 1993 року. З версії 4.1 в січні 2004 року вона була перейменована в ICS Cron. Версія 3 з деякими дрібними виправленнями використовується в більшості дистрибутивів Linux і системах BSD. Інші популярні реалізації cron — anacron і fcron. anacron дозволяє виконати команду навіть якщо час для запуску було пропущено (наприклад, комп'ютер було вимкнено). anacron не є самостійною і вимагає наявності cron. Зноски
Посилання
|