cron

cron — це служба в Ubuntu (і загалом у Unix-подібних системах), яка виконує команди або скрипти у фоновому режимі за розкладом, що задається у спеціальних файлах — crontab.


🔧 Основи cron

Служба cron працює з декількома джерелами завдань:

  1. Особисті таблиці завдань користувачівcrontab для кожного користувача (crontab -e).

  2. Системні файли — в каталогах /etc/cron.* (cron.daily, cron.hourly, ...).

  3. Файли в /etc/crontab і /etc/cron.d/ — системні розклади, де можна вказувати користувача для виконання.


📜 Формат запису в crontab

* * * * * команда
│ │ │ │ │
│ │ │ │ └─ день тижня (0-7) — 0 і 7 = неділя
│ │ │ └─── місяць (1-12)
│ │ └───── день місяця (1-31)
│ └─────── година (0-23)
└───────── хвилина (0-59)

Наприклад:

30 2 * * * /usr/local/bin/backup.sh

Виконуватиме backup.sh щодня о 2:30 ночі.


📌 Перегляд та редагування crontab

Переглянути завдання:

crontab -l

Редагувати поточний crontab:

crontab -e

Перший запуск може спитати, який редактор використовувати (зазвичай обирають nano або vim).


✅ Приклад завдань

1. Запуск скрипта щогодини:

0 * * * * /home/user/scripts/cleanup.sh

2. Відправка пінгу раз на 5 хвилин:

*/5 * * * * ping -c 1 example.com > /dev/null

📁 /etc/cron.* — інший підхід

Можеш просто покласти скрипт у відповідний каталог:

  • /etc/cron.hourly/ — виконується щогодини

  • /etc/cron.daily/ — щодня

  • /etc/cron.weekly/ — щотижня

  • /etc/cron.monthly/ — щомісяця

Скрипт має бути виконуваним (chmod +x) і мати shebang (#!/bin/bash на початку).


🧪 Перевірити роботу cron

  1. Додай завдання з перенаправленням у лог:

    * * * * * echo "Cron test $(date)" >> /tmp/cron.log
  2. Через кілька хвилин перевір:

    tail /tmp/cron.log

🛠 Логи cron

У Ubuntu 24.04 за замовчуванням логи можна дивитись тут:

journalctl -u cron.service

Або просто:

sudo grep CRON /var/log/syslog

Last updated