Створення власного завдання Cron у Linux

Автоматизація рутинних завдань має важливе значення для надійного системного адміністрування або веб-розробки. Завдання Cron – це потужний планувальник завдань на основі часу в Unix-подібних операційних системах, що дозволяє автоматично запускати скрипти або команди через заплановані проміжки часу.

Що таке завдання Cron?

Завдання cron – це заплановане завдання, визначене у crontab (таблиці cron) системи, яке виконує команди або скрипти у визначений час або через визначені проміжки часу. Cron широко використовується, тому що він:

  • Легкий

  • Легко налаштовується

  • Вбудовано у більшість дистрибутивів Linux

Поширені випадки використання

  • Щоденне або щотижневе резервне копіювання бази даних

  • Запуск PHP/Python скриптів

  • Ротація журналів і очищення тимчасових файлів

  • Відправлення електронних листів за розкладом

  • Оновлення кешу даних або синхронізація файлів

Крок 1: Доступ до кронтабу

Для редагування кронтабу вашого користувача (без root-доступу):

crontab -e
Щоб відредагувати кронтаб користувача root (потрібно виконати sudo):
sudo crontab -e

Крок 2: Розбір синтаксису Cron

Кожне завдання cron використовує наступний формат:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

Приклад: Запускати скрипт щодня о 2 годині ночі

0 2 * * * * /home/user/scripts/backup.sh

Крок 3: Створення користувацького сценарію

Припустимо, ви хочете запустити власний скрипт на Python. Спочатку створіть файл:

nano /home/user/scripts/cleanup.py

Приклад скрипта:

#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)

Зробіть скрипт виконуваним:

chmod x /home/user/scripts/cleanup.py

Крок 4: Додайте завдання Cron

Відредагуйте ваш кронтаб і додайте:

0 1 * * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Це:

  • Запускає скрипт щодня о 1:00 ночі

  • Виводить лог у файл /var/log/cleanup.log

Приклади використання

✅ Бігайте кожні 10 хвилин

*/10 * * * * * /home/user/check_status.sh

✅ Запуск тільки по понеділках о 3 годині ночі

0 3 * * 1 /home/user/scripts/weekly_report.sh

Вимкнення або видалення завдання Cron

Тимчасово вимкніть рядок, закоментувавши його за допомогою #.

Видалити всі завдання:

crontab -r

Користувацькі завдання cron – це потужний інструмент для автоматизації, обслуговування та надійності. Незалежно від того, чи керуєте ви персональним VPS, розгортаєте бекенд-скрипти або запускаєте виробничі робочі навантаження, освоєння cron дозволить вам контролювати , коли і як виконуються завдання – без зайвих зусиль.