Планировщик задач (Cron)
Cron — это классический системный демон (планировщик) в Linux, который автоматически выполняет заданные команды или скрипты по расписанию.
В нашей инфраструктуре он используется для автоматизации рутины: ежеминутной сборки этой Wiki из Markdown (через MkDocs) и еженедельного обновления Docker-контейнеров (например, NPMplus).
🕒 Синтаксис расписания
Расписание задается пятью параметрами, разделенными пробелами. Они читаются слева направо:
* * * * * выполняемая команда
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └─ День недели (0 - 7) (0 и 7 — это воскресенье, 1 — понедельник)
│ │ │ └─── Месяц (1 - 12)
│ │ └───── День месяца (1 - 31)
│ └─────── Часы (0 - 23)
└───────── Минуты (0 - 59)Звездочка * означает «каждый» (каждую минуту, каждый час и т.д.).
📋 Полезные примеры и шаблоны
* * * * *— Каждую минуту (используется для сборки Wiki).0 3 * * 0— Каждое воскресенье в 03:00 ночи (используется для обновления Docker-образов).0 4 * * *— Каждый день в 04:00 ночи.0 3 * * 3,0— Дважды в неделю (в среду и воскресенье в 03:00).0 2,14 * * *— Каждые 12 часов (в 02:00 и 14:00).0 3 1 * *— Раз в месяц (каждое 1-е число в 03:00).
💡 Лайфхак: Для быстрой расшифровки или создания сложных расписаний используй сервис crontab.guru. Он переводит символы Cron на простой человеческий язык.
🛠 Управление и команды
Для управления своими задачами используются следующие команды в консоли (SSH или оболочка Proxmox):
crontab -e— Открыть файл расписания для редактирования.crontab -l— Посмотреть текущий список запланированных задач (без редактирования).
Перезапуск службы (если задачи не подхватились):
- В контейнерах Alpine (например, Wiki):
rc-service crond restart - В контейнерах Debian/Ubuntu:
systemctl restart cron