table of contents
crontab(1) | 2007-10-27-16:31 | crontab(1) |
НАЗВА¶
crontab - змінює файл завдань crontab користувача (Dillon's Cron)
СТИСЛИЙ ОГЛЯД¶
crontab файл [-u користувач] - поміняє crontab на те, що вказано у файлі
crontab - [-u користувач] - поміняє crontab, читаючи зі стандартного вводу
crontab -l [користувач] - перелічить завдання з crontab користувача
crontab -e [користувач] - розпочне редагування crontab користувача
crontab -d [користувач] - вилучить crontab користувача
crontab -c тека - вкаже теку з файлами crontab
ОПИС¶
Програма працює з файлом завдань для crond(8), (ми будемо називати його crontab, не виділяючи жирним шрифтом), що належить певному користувачеві. Тільки надкористувач має доступ до файлу завдань відмінного користувача і/або відмінного каталогу з crontab-файлами. Як правило, опція -e використовується для редагування вашого файлу завдань. crontab використає /usr/bin/vi або редактор, вказаний у змінній середовища для цього.
На відміну від інших crond і crontab, ця програма crontab не намагається здійснити все що завгодно. Скрипт оболонки занадто здібний до зміни середовища, ніж cron і я не бачу змісту використання користувацької оболонки з passwd для команд cron, особливо у спеціальних випадках crontab-файлів не-користувачів, таких як UUCP, наприклад. Ця програма crontab обмежується лише /bin/sh зі встановленими лише трьома змінними середовища: USER, HOME і SHELL.
crond автоматично виявляє зміни часу. Зміни індексів часу у зворотньому напрямку менші за одну годину не запустять команди crontab, що вже мали місця, знову. Зміни часу у майбутньому, менші за одну годину, призведе до одноразового виконання додаткових команд. Зміни часу більші за годину назад або вперед, викличуть синхронізацію crond і додаткових команд не виконуватиметься наразі. Не робитиметься спроба відновити команди, що не вдалося виконати з-за рестарту системи і команди не перезапускаються, якщо попередньо-запущена команда не закінчила свою дію. Так прикладом, якщо у вас наявна команда `sleep 70', яка повинна виконуватись кожну хвилину, cron зможе в змозі буде запускати її лишень кожні дві хвилини. Якщо вам не подобається ця риса, ви завжди можете виконувати команди у фоновому режимі, якщо добавите `&' наприкінці.
Формат crontab-файлів дещо схожий на той, що вживається з vixiecron, але без складніших можливостей. Окремі поля можуть утримувати час, діапазон часу, діапазон часу з фактором пропуску, символічні діапазони з днем тижня і місяцем року і додаткові проміжні діапазони, розділені комами. Порожні рядки або рядки, що починаються з гешу (#) ігноруються. Якщо ви одночасно вказуєте день місяця і день тижня, результат ефективно пройде через логічне АБО... цей пункт з crontab виконуватиметься у вказаний день тижня і вказаний день місяця.
# MIN HOUR DAY MONTH DAYOFWEEK COMMAND
# о 6:10 ранку кожного дня
10 6 * * * date
# кожні дві години після кожної години
0 */2 * * * date
# кожні дві години з 23:00 по 7:00 і о 8-ій годині
0 23-7/2,8 * * * date
# о 11:00 ранку кожного 4-го числа місяця і кожного
# понеділку, вівторку і середи
0 11 4 * mon-wed date
# о 4-ій ранку 1-го Січня
0 4 1 jan * date
# кожної години, весь вивід доточується до журналу
0 * * * * date >>/var/log/messages 2>&1
Внутрішньо, цей cron використовує швидку систему індексації, під час пошуку команд до виконання, щоб зменшити навантаження на процесор. Декілька сотень crontab-файлів з декількома тисячами записів буде оброблено без значного використання процесорних ресурсів.
ВАДИ¶
Бажано було би мати декілька файлів crontab для кожного користувача для кращої організації.
АВТОР¶
Matthew Dillon (dillon@apollo.west.oic.com)
Переклав Віталій Цибуляк (vi@uatech.atspace.com)
2007-10-27-16:31 | © 2005-2007 DLOU, GNU FDL |