Это старая версия документа!
Содержание
Cron
О Cron
Cron - Системная утилита, предназначенная для автоматического выполнения задач (скриптов или команд) в строго определенное время или через определенные промежутки времени.
Установка Cron
Установите Cron:
sudo apt install cron
Проверьте статус Cron:
sudo systemctl status cron
Вывод в терминале:
● cron.service - Regular background program processing daemon
Loaded: loaded (/usr/lib/systemd/system/cron.service; enabled; preset: enabled)
Active: active (running) since Thu 2026-10-22 19:52:07 +07; 1h 22min ago
Docs: man:cron(8)
Main PID: 810 (cron)
Tasks: 1 (limit: 18768)
Memory: 464.0K (peak: 2.3M)
CPU: 14ms
CGroup: /system.slice/cron.service
└─810 /usr/sbin/cron -f -P
окт 22 19:52:07 NEO-M136 systemd[1]: Started cron.service - Regular background program processing daemon.
окт 22 19:52:07 NEO-M136 (cron)[810]: cron.service: Referenced but unset environment variable evaluates to an empty string: EXTRA_OPTS
окт 22 19:52:07 NEO-M136 cron[810]: (CRON) INFO (pidfile fd = 3)
окт 22 19:52:07 NEO-M136 cron[810]: (CRON) INFO (Running @reboot jobs)
окт 22 20:17:01 NEO-M136 CRON[21141]: pam_unix(cron:session): session opened for user root(uid=0) by root(uid=0)
окт 22 20:17:01 NEO-M136 CRON[21141]: pam_unix(cron:session): session closed for user root
окт 22 20:30:01 NEO-M136 CRON[30078]: pam_unix(cron:session): session opened for user root(uid=0) by root(uid=0)
окт 22 20:30:01 NEO-M136 CRON[30079]: (root) CMD ([ -x /etc/init.d/anacron ] && if [ ! -d /run/systemd/system ]; then /usr/sbin/invoke-rc.d anacron s>
окт 22 20:30:01 NEO-M136 CRON[30078]: pam_unix(cron:session): session closed for user root
lines 1-20/20 (END)
Добавить Cron в автозагрузку:
sudo systemctl enable cron
Удалить Cron из автозагрузки:
sudo systemctl disable cron
Запуск Cron:
sudo systemctl start cron
Перезапуск Cron:
sudo systemctl restart cron
Остановить Cron:
sudo systemctl stop cron
Задача Cron
* * * * * /путь/к/команде_или_скрипту │ │ │ │ │ │ │ │ │ └─── День недели (0–6) (0 — воскресенье) │ │ │ └───── Месяц (1–12) │ │ └─────── День месяца (1–31) │ └───────── Час (0–23) └─────────── Минута (0–59)
Специальные символы
- * - Любое значение (каждую минуту, каждый час и т.д.).
- , - Список значений (например, 1,3,5 в поле минут — выполнение на 1, 3 и 5 минутах).
- - - Диапазон (например, 1-5 в поле часов — каждый час с 1 до 5).
- / - Шаг/интервал (например, */15 в поле минут — каждые 15 минут).
Примеры расписания
| Время | Описание |
|---|---|
| * * * * * | Каждую минуту |
| 0 * * * * | В начале каждого часа |
| */15 * * * * | Каждые 15 минут |
| 0 0 * * * | Каждый день в полночь |
| 0 9 * * 1-5 | |
| 30 18 * * 0 | |
| 0 12 1 * * |
Опции crontab
- –help - Показать справочную информацию по команде
- -e - Редактирует текущий файл (открывает текстовый редактор)
- -l - Показывает список всех запланированных задач
- -r - Удаляет все текущие задачи пользователя
- -u - Редактирует задачи другого пользователя (требуются права sudo)
Использование Cron
Редактирует текущий файл пользователя, используем опцию -e:
crontab -e
Добавить задачу:
* * * * * /полный/путь/к/скрипту или команде
Crontab.guru - The cron schedule expression generator
Запускать задачу каждый час в нулевую минуту:
0 * * * * /полный/путь/к/скрипту или команде
Запускать задачу каждый каждые 30 минут:
0/30 * * * * /полный/путь/к/скрипту или команде
Запускать задачу каждый день в 12 часов ночи:
0 0 * * * /полный/путь/к/скрипту или команде
Запускать задачу 1-го числа каждого месяца в 12 часов ночи:
0 0 1 * * /полный/путь/к/скрипту или команде
Показать список всех запланированных задач, используем опцию -l:
crontab -l
Удалить все текущие задачи пользователя, используем опцию -r:
crontab -r
Редактировать задачи другого пользователя (требуются права sudo), используем опцию -u:
crontab -u <Имя_пользователя> -e
