Cron на Linux: настройка планировщика задач на VPS

VDS / VPS серверы · 19.04.2026
Cron на Linux: настройка планировщика задач на VPS

Cron — демон планирования задач в Unix-системах, запускающий команды по расписанию. Используется для резервного копирования, отправки отчётов, обновления сертификатов SSL и любой автоматизации.

Синтаксис cron-записи

# ┌───────────── минуты (0-59)
# │ ┌─────────── часы (0-23)
# │ │ ┌───────── день месяца (1-31)
# │ │ │ ┌─────── месяц (1-12)
# │ │ │ │ ┌───── день недели (0=Sun, 6=Sat)
# │ │ │ │ │
# * * * * * команда

Примеры расписаний

ВыражениеКогда выполняется
* * * * *Каждую минуту
0 * * * *Каждый час (в 00 минут)
0 3 * * *Каждый день в 03:00
0 3 * * 1Каждый понедельник в 03:00
0 0 1 * *Первое число каждого месяца
*/15 * * * *Каждые 15 минут
0 2,14 * * *В 02:00 и 14:00
@rebootПри каждой перезагрузке
@dailyРаз в сутки (= 0 0 * * *)

Управление crontab

# Редактировать crontab текущего пользователя
crontab -e

# Посмотреть текущий crontab
crontab -l

# Удалить crontab
crontab -r

# Crontab для другого пользователя (root)
sudo crontab -u www-data -e

Практические примеры

# Бэкап базы данных каждые 6 часов
0 */6 * * * mysqldump -u root -pPASSWORD mydb > /backup/db_$(date +%Y%m%d_%H%M).sql

# Обновление Let's Encrypt сертификатов
0 3 * * * certbot renew --quiet

# Очистка логов старше 30 дней
0 4 * * * find /var/log/myapp -name "*.log" -mtime +30 -delete

# Запуск Python-скрипта и логирование вывода
*/30 * * * * /usr/bin/python3 /opt/scripts/sync.py >> /var/log/sync.log 2>&1

# Перезапуск сервиса в 05:00 каждое воскресенье
0 5 * * 0 systemctl restart myapp

Переменные окружения в cron

# Cron имеет минимальное окружение — $PATH может не содержать нужные пути
# Всегда используйте полные пути к командам
/usr/bin/php, /usr/local/bin/wp и т.д.

# Или явно задайте PATH в начале crontab:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=admin@example.com  # отправлять ошибки на email
💡 Отладка cron: Добавьте 2>&1 >> /tmp/cron_debug.log к команде для захвата всего вывода. Если cron молчит при явной ошибке — скорее всего проблема с PATH или правами файла.
← Назад в базу знаний Задать вопрос поддержке