Планировщики
Планировщики задач запускают скрипты, программы и команды без вашего участия — по расписанию или событию. Ими закрывают рутину: бэкапы, ротацию логов, синхронизацию, health-check, ночные отчёты.
Классическая модель Unix — cron: пять полей (минута, час, день месяца, месяц, день недели) и команда. В современном Linux часто рядом живут systemd timers; в Windows — Task Scheduler; в macOS — launchd. Для сложных DAG в продакшене добавляют Airflow, Celery Beat, Jenkins.
:::tip Как читать cron
* — «каждый»; */15 — шаг; 1-5 в поле дня недели — понедельник–пятница (0 и 7 = воскресенье). Строка в crontab всегда заканчивается командой с полным путём к интерпретатору или скрипту.
:::
1. cron (Unix, Linux, macOS)
Стандартный демон планирования в Unix-подобных системах. Расписание задаётся cron-выражением из пяти полей.
Установка (если нет в системе):
# Debian/Ubuntu
sudo apt install cron
# RHEL/CentOS/Fedora
sudo dnf install cronie
Настройка: crontab -e — таблица заданий текущего пользователя.
Формат строки:
минута час день_месяца месяц день_недели команда
Пример:
0 2 * * * /home/user/backup.sh # ежедневно в 02:00
Документация: man 5 crontab, Ubuntu CronHowto
2. systemd Timers (Linux с systemd)
Замена и дополнение cron в системах на systemd: юниты .timer + .service, OnCalendar, Persistent=true (догон пропущенного запуска после простоя).
Установка: входит в systemd (Debian ≥ 8, Ubuntu ≥ 15.04, RHEL ≥ 7).
Пример:
# /etc/systemd/system/backup.service
[Unit]
Description=Backup script
[Service]
ExecStart=/home/user/backup.sh
# /etc/systemd/system/backup.timer
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Активация:
sudo systemctl enable --now backup.timer
systemctl list-timers # список активных таймеров
Документация: systemd.timer
3. Task Scheduler (Windows)
Встроенный планировщик с GUI и CLI (schtasks, PowerShell Register-ScheduledTask).
Доступ: Панель управления → Администрирование → Планировщик заданий.
Пример CLI:
schtasks /create /tn "NightlyBackup" /tr "C:\Scripts\backup.bat" /sc daily /st 02:00
Документация: Task Scheduler (Microsoft Learn)
4. launchd (macOS)
Система инициализации и планирования macOS. Задания — plist в ~/Library/LaunchAgents/ (пользователь) или /Library/LaunchDaemons/ (система).
Пример фрагмента plist:
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>2</integer>
<key>Minute</key><integer>0</integer>
</dict>
Загрузка: launchctl load ~/Library/LaunchAgents/local.backup.plist
Документация: Creating Launch Daemons and Agents
5. at (однократный запуск)
Запуск команды один раз в указанное время.
sudo apt install at # Debian/Ubuntu
echo "/home/user/script.sh" | at 18:00
Документация: man at
6. Anacron (ноутбуки и ПК с простоями)
Дополнение к cron: если машина была выключена, задание выполнится при следующем включении.
Конфиг /etc/anacrontab:
1 5 cron.daily run-parts --report /etc/cron.daily
7. Celery Beat (Python, веб-стек)
Периодические асинхронные задачи в Django/Flask и др.
pip install "celery[redis]"
from celery import Celery
from celery.schedules import crontab
app = Celery('tasks', broker='redis://localhost:6379/0')
app.conf.beat_schedule = {
'nightly-backup': {
'task': 'tasks.backup',
'schedule': crontab(hour=2, minute=0),
},
}
Документация: Celery Periodic Tasks
8. PowerShell Scheduled Jobs
Register-ScheduledJob -Name NightlyBackup `
-ScriptBlock { & "C:\Scripts\backup.ps1" } `
-Trigger (New-JobTrigger -Daily -At "2:00AM")
Документация: about_Scheduled_Jobs
9. Jenkins и 10. Airflow (оркестрация)
| Инструмент | Когда уместен |
|---|---|
| Jenkins | CI/CD, сборки, деплой; расписание через cron-триггер job |
| Apache Airflow | DAG из зависимых задач, SLA, ретраи, UI для data/platform-команд |
docker run -p 8080:8080 jenkins/jenkins:lts
pip install apache-airflow
Дополнительно
- GUI для cron: Crontab UI
- Интеграции без кода: Zapier, n8n (self-hosted), Make — расписание + вебхуки
- Мобильные сценарии: Tasker (Android)
:::info Связанные темы Shell-скрипты и PowerShell — в разделах языков; пайплайны CI/CD — в DevOps энциклопедии. :::
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Редакторы, сравнение, архивы, поиск, шифрование и мониторинг файлов — инструменты для ежедневной автоматизации файловых операций. Генераторы проектов, Make/just, git hooks, watch-утилиты и системные сервисы — практики автоматизации повседневной работы разработчика.Работа с файлами
Полезные фичи