The crontab це список команд, які ви хочете виконувати за регулярним розкладом, а також назва команди, яка використовується для керування цим списком. Crontab розшифровується як cron table, оскільки він використовує планувальник завдань cron для виконання завдань; хрон сам названий на честь chronos, грецьке слово, що означає час. cron — системний процес, який автоматично виконуватиме завдання за встановленим розкладом. Розклад називається crontab, це також назва програми, яка використовується для редагування цього розкладу.
Синтаксис Linux Crontab
Формат Linux Crontab представлений таким синтаксисом:
MIN HOUR DOM MON DOW CMD>
Давайте розберемо кожне поле:
| Поле | опис | Дозволене значення |
|---|---|---|
| MIN (хвилина) | Визначає хвилину виконання команди | Він коливається від 0 до 59. |
| ГОДИНА | Позначає годину дня, коли заплановано виконання команди. | Він охоплює від 0 до 23. |
| DOM (день місяця) | Визначає день місяця для завдання. | Він коливається від 1 до 31. |
| ПН (місяць) | Вказує місяць, протягом якого буде виконуватися команда. | Він коливається від 1 до 12. |
| DOW (день тижня) | Визначає день тижня для завдання. | Він представлений числами від 0 до 6, де і 0, і 6 відповідають неділі. |
| CMD (команда) | Представляє фактичну команду або сценарій, який буде виконано в запланований час. | —————– |
Приклади завдань Cron
1. Планування роботи на певний час
Основним використанням cron є виконання завдання в певний час, як показано нижче. Це призведе до виконання сценарію оболонки повної резервної копії (повне резервне копіювання) 10 червня о 08:30. Поле часу використовує 24-годинний формат. Отже, для 8 ранку використовуйте 8, а для 8 вечора використовуйте 20.
30 08 10 06 * /home/maverick/full-backup>
30 – 30 хвилина 08 – 08 ранку 10 – 10 день 06 – 6 місяць (червень) * – Кожен день тижня
2. Щоб переглянути записи Crontab
- Перегляд записів Crontab поточного зареєстрованого користувача: щоб переглянути записи crontab, введіть crontab -l зі свого облікового запису Unix.

- Перегляд кореневих записів Crontab: увійдіть як користувач root (su – root) і виконайте crontab -l.

- Щоб переглянути записи crontab інших користувачів Linux: увійдіть до root і використовуйте -u {ім’я користувача} -l.

3. Для редагування записів Crontab Редагувати записи Crontab поточного зареєстрованого користувача.
Щоб редагувати записи crontab, використовуйте crontab -e. За замовчуванням це редагує crontab поточних користувачів, які ввійшли в систему. 
4. Запланувати завдання на кожну хвилину за допомогою Cron.
В ідеалі у вас може не виникнути вимога планувати роботу щохвилини. Але розуміння цього прикладу допоможе вам зрозуміти інші приклади.
* * * * * CMD>
* означає всі можливі одиниці, тобто кожну хвилину кожну годину протягом року. Більше ніж використання цього * безпосередньо, ви знайдете його дуже корисним у наступних випадках. Коли ви вказуєте */5 у полі хвилин, це означає кожні 5 хвилин. Коли ви вказуєте 0-10/2 у полі хвилин, це означає кожні 2 хвилини протягом перших 10 хвилин. Таким чином, наведену вище умову можна використовувати для всіх інших 4 полів.
5. Щоб запланувати роботу більш ніж на один раз (наприклад, двічі на день)
Наступний сценарій виконує інкрементне резервне копіювання двічі на день щодня. У цьому прикладі щодня об 11:00 та 16:00 виконується вказаний сценарій оболонки інкрементного резервного копіювання (incremental-backup). Значення, розділене комами в полі, вказує на те, що команда має бути виконана протягом усього зазначеного часу.
00 11, 16 * * * /home/maverick/bin/incremental-backup>
00 – 0-та хвилина (початок години) 11, 16 – 11 ранку та 16:00 * – щодня * – щомісяця * – щодня тижня
6. Щоб запланувати роботу на певний проміжок часу (наприклад, лише в будні)
Якщо ви хочете, щоб завдання було заплановано на кожну годину в певний проміжок часу, скористайтеся наступним.
- Cron Job щоденно в робочий час: цей приклад перевіряє статус бази даних щодня (включно з вихідними) протягом робочого часу з 9:00 до 18:00.
00 09-18 * * * /home/maverick/bin/check-db-status>
- 00 – 0-та хвилина (початок години) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Щодня * – Щодня місяць * – Кожен день тижня
- Cron Job кожен будній день у робочий час: у цьому прикладі перевіряється статус бази даних кожного буднього дня (тобто, за винятком суботи та неділі) протягом робочого часу з 9:00 до 18:00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
- 00 – 0-та хвилина (початок години) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Щодня * – Щодня місяць 1-5 - пн, вт, ср, чт і пт (щобудня)
7. Запланувати фонове завдання Cron кожні 10 хвилин.
Використовуйте наступне, якщо ви хочете перевіряти дисковий простір кожні 10 хвилин.
видалити останній коміт git
*/10 * * * * /home/maverick/check-disk-space>
Він виконує вказану команду check-disk-space кожні 10 хвилин протягом року. Але у вас може виникнути вимога виконувати команду лише в певні години або навпаки. Наведені вище приклади показують, як це зробити. Замість того, щоб вказувати значення в 5 полях, ми можемо вказати їх за допомогою одного ключового слова, як зазначено нижче. Існують особливі випадки, коли замість наведених вище 5 полів можна використовувати @ із ключовим словом, наприклад перезавантаження, опівночі, щорічно, погодинно. Спеціальні ключові слова Cron та їх значення
Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>
8. Планувати роботу на першу хвилину кожного року за допомогою @yearly
Якщо ви хочете, щоб завдання виконувалося в першу хвилину кожного року, ви можете використати ключове слово @yearly cron, як показано нижче. Це виконає щорічне обслуговування системи за допомогою сценарію оболонки щорічного обслуговування о 00:00 1 січня для щороку.
@yearly /home/maverick/bin/annual-maintenance>
9. Щоб запланувати завдання Cron на початок кожного місяця за допомогою @monthly
Він так само схожий на @yearly, як описано вище. Але виконує команду щомісяця за допомогою ключового слова cron @monthly. Це виконуватиме резервне копіювання стрічки сценарію оболонки о 00:00 1-го числа кожного місяця.
@monthly /home/maverick/bin/tape-backup>
10. Щодня планувати фонову роботу за допомогою @daily
Використовуючи ключове слово @daily cron, це виконуватиме щоденне очищення файлу журналу за допомогою сценарію оболонки cleanup-logs щодня о 00:00.
@daily /home/maverick/bin/cleanup-logs 'day started'>
11. Для виконання команди Linux після кожного перезавантаження за допомогою @reboot
Використовуючи ключове слово @reboot cron, це виконає вказану команду один раз після кожного завантаження машини.
@reboot CMD>


