Cron - це стандартна система планування завдань в Unix системах. За її
допомогою можна автоматизувати фактично все, але головним застосуванням
була і залишається автоматизація дій серверів. Розумним використанням можна не тільки
виконувати рутинну роботу чищення кешу або рестартування модему, але і
суттєво ефективніше використовувати ресурси сервера веб-сайтів при
порівнянні наприклад з автоматизацію використанням засобів PHP. У цій
статті я детально поясню синтаксис і покажу приклади з буденного життя.
1. Команди
Щоб запустити і налаштовувати Cron використовуються команди:
Для наших потреб ми скористаємося другою командою - crontab -e (звичайно, її потрібно вводити з терміналу, або SSH підключення)
2. Структура
Далі перш за все про структуру - вона розділяється на 6 параметрів:
3. Приклади
Декілька простих прикладів для кращого порозуміння:
УВАГА! Для редагування та створення новго завдання потрібно натиснути "і", для збереження потрібно вийти з режиму змін (кнопка Escape) і набрати :wq (після чого Enter), термінал має виписати "crontab: installing new crontab".
Для запуску завдання в інтервалі, наприклад кожних 2 години використовується */2:
Також можливо запускати завдання в проміжку, наприклад з понеділка до п'ятниці (о 5 ранку):
4. Повідомлення на email
Як відомо, після внесення власного завдання Cron завжди надсилатиме повідомлення про його виконання на електронну адресу адміністратора - інколи це зайве (наприклад завдання виконується що дві хвилини), тому для вимкнення цієї можливості потрібно додати " >/dev/null 2>&1" після команди, наприклад:
5. Збереження дій в окремий файл (звіт, log)
Після заборони надсилати повідомлення на електронну пошту адміністратор може буде не впевненим щодо правильного виконання завдань - використовуючи " > файл" для цього можна створити файл-звіт:
1. Команди
Щоб запустити і налаштовувати Cron використовуються команди:
crontab -l Показати вміст файлу завдань.
crontab -e Редагувати або створити файл.
crontab -r Видалити файл
crontab -v Показати час останньої зміни (залежить від збірки, рідкісна команда)
crontab -e Редагувати або створити файл.
crontab -r Видалити файл
crontab -v Показати час останньої зміни (залежить від збірки, рідкісна команда)
Для наших потреб ми скористаємося другою командою - crontab -e (звичайно, її потрібно вводити з терміналу, або SSH підключення)

Далі перш за все про структуру - вона розділяється на 6 параметрів:
Хвилина виконання (0-59), Година (0-23), День (1-31), Місяць (1-12), День тижня (1-7), Команда
3. Приклади
Декілька простих прикладів для кращого порозуміння:
0 5 * * * /sbin/service httpd start - кожен день о 5 годині буде запускатися сервер себ-сторінок
55 23 * * * /sbin/service httpd stop - о 23:55 веб-сервер зупинятиметься
55 23 * * * /sbin/service httpd stop - о 23:55 веб-сервер зупинятиметься
УВАГА! Для редагування та створення новго завдання потрібно натиснути "і", для збереження потрібно вийти з режиму змін (кнопка Escape) і набрати :wq (після чого Enter), термінал має виписати "crontab: installing new crontab".
Для запуску завдання в інтервалі, наприклад кожних 2 години використовується */2:
0 */2 * * * /sbin/service httpd restart - кожну 2 годину веб-сервер перезавантажуватиметься
або кожних пів години:
*/30 * * * * /sbin/service httpd restart
*/30 * * * * /sbin/service httpd restart
Також можливо запускати завдання в проміжку, наприклад з понеділка до п'ятниці (о 5 ранку):
0 5 * * 1-5 /sbin/service httpd start
4. Повідомлення на email
Як відомо, після внесення власного завдання Cron завжди надсилатиме повідомлення про його виконання на електронну адресу адміністратора - інколи це зайве (наприклад завдання виконується що дві хвилини), тому для вимкнення цієї можливості потрібно додати " >/dev/null 2>&1" після команди, наприклад:
*/10 5 * * 1-5 /sbin/service qmail restart >/dev/null 2>&1
- о п'ятій годині ранку кожних 10 хвилин перезавантажуватиметься
поштовий сервер qmail - без зайвих повідомлень
5. Збереження дій в окремий файл (звіт, log)
Після заборони надсилати повідомлення на електронну пошту адміністратор може буде не впевненим щодо правильного виконання завдань - використовуючи " > файл" для цього можна створити файл-звіт:
30 23 * * * rm /home/user/tmp/* > /home/someuser/cronlogs/clean_user_temp.log - кожного дня о 23:30 буде вичищено папку /home/user/tmp/ з записом у відповдний звіт

11
Переглядів: 2114










© 2007-2011 Hurtom.com «Українське гніздечко»

відповідь