Cron Це програма, яка виконує завдання за розкладом. Дозволяє повторювати початок завдань. І. Завдання можна розпочати в певному часі або після певного періоду часу. Формат та значення полів для користувацького крентабного файлів будуть надані в кінці статті.
При завантаженні системи запускається коронна демон і перевіряє чергу завдань та завдань користувача у файлах кроктабі. На старті бронза спочатку перевіряє каталог. /var/spool/cron якщо доступні файли crontab, файли Crontab мають імена користувачів, що відповідають імені користувача /etc/passwd Кожен користувач може мати лише один файл кроктаба, може бути кілька записів у файлі.
Іншими словами, кроконтабні файли містять інструкції для демона з кроном, які будуть виконувати завдання (s) описані в файлі crontab. Усі файли crontab з каталогу /var/spool/cron Вони завантажуються в пам'ять, при цьому файли з /etc/cron.d Cron demon потім завантажує вміст файлу. /etc/crontab З стандартними налаштуваннями, зміст /etc/crontab Ось так:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 02 4 * * * root run-parts /etc/cron.daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly
Інформація про файл свідчить про те, що:
Список /etc/cron.hourly Забудувати час в першій хвилині години.
Список /etc/cron.daily У другій хвилині четвертої години буде запущено кожен день.
Список /etc/cron.weekly Забудувати кожну неділю в двадцять секунду хвилину. Четвертий час.
Список /etc/cron.monthly Починаємо кожен перший день місяця в сорок-другій хвилині четвертої години.
SHELL=/bin/bash означає використовувати команди /bin/bash Якщо змінна не зазначена, значення буде взято з /etc/passwd Користувач є власником файлу.
HOME=/ Кореневий каталог для користувача (опційне опція) Якщо вам потрібен доступ до спеціальних властивостей перекладача, значення змінних SHELL і HOME може бути змінено незалежно від того, що написано в /etc/passwd
MAILTO=root Це означає, що надсилання повідомлення про результати роботи команд.
Усі дані каталогів будуть працювати з правами доступу до кореневих користувачів та файлами, які повинні мати дозвіл «виконання». http://rst.void.ru/texts/chmod.txt) Тому перед розміщенням файлів в одному з цих каталогів необхідно переконатися, що скрипти не завдають шкоди системі.
Після того, як працює cron demon і прочитав вміст всіх файлів crontab, він sits свічка, відкидаючи кожну хвилину, щоб побачити, чи потрібні будь-які команди в даний момент, або якщо новий файл crontab з'явився, що потрібно бути обробленим. Крон демон виявляє зміни в часі модифікації файлів або каталогів, це майно виключає необхідність перезапустити демон.
/etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly
Доступно тільки до кореневого користувача, для використання файлів crontab користувачами, потрібно використовувати команду кроконтаб. Команда використовується для створення, модифікації та додавання файлу для демонів з кроном.
Приклади
Розглянемо приклад створення файла crontab для користувача, довідника будинку /home/user
Мета: Запустити кожну хвилину файлу /home/user/mailwhich відправить лист
Зміст поштового файлу (файл повинен мати дозвіл на старт!) наприклад, -rwxr-xr-x
#!/bin/bash mess="test cron" echo "$mess" |mutt -s "subj" -m application/octet-stream \n [email protected]
1.Створити тимчасовий файл /home/user/test Зміст тестового файлу:
SHELL=/bin/bash MAILTO=user 0-59 * * * * /home/user/mail
2. ... Запустіть команду кроктаба в терміналі /home/user/test
Всі. Після цього в каталозі /var/spool/cron Файл «користувача» буде створений приблизно наступним змістом:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/home/user/test installed on Mon Mar 29 02:31:34 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash MAILTO=user 0-59 * * * * /home/user/mail
Файл. /home/user/mail З моменту відкриття бронзи буде розпочато кожен хвилинний.
Доступ до каталогу /var/spool/cron непривабливий користувач закритий, щоб побачити користувача "користувач", чи він має файл crontab, просто набрати команду crontab -l Якщо файл існує, його вміст буде показано.
Команда використовується для видалення файлу. crontab -r
Команда використовується для редагування crontab -e
Щоб керувати файлами crontab, користувач "root" використовує синтаксис:
crontab -u user_name file Створення файла crontab з файлу "файлу" для користувача "user_name", -u означає, чи буде оброблятися кроконтаб, якщо опція не зазначена, то кроктаб користувача, який запустив команду crontab.
crontab -u user_name -l Переглянути файл crontab користувача "user_name"
crontab -u user_name -r - Видаляє файл кроктаба користувача "user_name"
crontab -u user_name -e - редагування файла crontab користувача "user_name" за допомогою редактора, зазначеного змінною середовища VISUAL або EDITOR
Формат та значення полів
Кожна команда в користувальницькому файлі crontab займає одну лінію і складається з шести полів.
Загальний формат команди. Бажано додати цей текст до початку файла crontab-e. Потім він завжди буде видимим і використаний як обманний аркуш:
# ------------------------------------------------ # минута час день_месяца месяц день_недели команда # ------------------------------------------------ # Допустимые значения: # минута от 0 до 59 # час от 0 до 23 # день_месяца от 1 до 31 # месяц от 1 до 12 (можно три буквы из названия месяца, # регистр не имеет значения от jan до dec) # день_недели от 0 до 6 (0 это воскресенье, # можно писать от sun до sat) # Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному # значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом.
Наприклад:
* 5 4-10 0-3 * echo "HELLO" # печать HELLO в 5:00 на 4,5,6,7,8,9,10 дни января, февраля, марта и апреля
покрокова записка
* */2 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
еквівалентний попередньому прикладу (лист):
* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
те ж саме з показанням асортименту:
* 0-23/2 * * sat echo "HELLO" # печать HELLO каждый четный час, каждую субботу
59 23 31 dec * echo "Happy new year" # без комментариев :), поздравит с новым годом
Щоб відхилити задачу з короном, можна перенаправити результат файлу
Приклад:
0-59 * * * * /home/user/mail 2>/tmp/tmp.cron
Якщо на старті команди /home/user/mail Помилки відбуваються, вони будуть записані в файлі. /tmp/tmp.cron І ви завжди можете дізнатися, чому. У разі перенаправлення виходу на файл, лист, користувачем, зазначений у змінній MAILTO не буде відправлено.
Ви можете переглянути інформацію про всі команди, які працюють за допомогою cron demon в каталозі /var/log Це називається cron, cron1 і так далі.
У файлі. /var/log/cron Зареєстрований час запуску всіх завдань з корони на попередній день
Mar 29 04:03:00 rst CROND[4434]: (user) CMD (/home/user/mail) Mar 29 04:03:59 rst CROND[4493]: (user) CMD (/home/user/mail) Mar 29 04:05:00 rst CROND[4507]: (user) CMD (/home/user/mail) Mar 29 04:06:00 rst CROND[4549]: (user) CMD (/home/user/mail)
Інші файли cron1,cron2 містять подібну інформацію, але старше cron. Ось все, що вам потрібно знати про використання крону і крунтабу.
Я був з вами. Сергій Лазаренко. У Якщо вам потрібна ця інструкція, підписайтесь на отримання оновлень з сайту в електронну пошту. Поділіться посиланням на інструкції, натиснувши на іконку соціальної мережі внизу статті.
Тепер нехай відпочивати в іншому світі, спостерігаючи гарне відео про підводне полювання:




Про нас