Как настроить задания Cron на виртуальном сервере

Если у вас есть виртуальный сервер VPS/VDS, то рано или поздно вам захочется автоматизировать рутину: создание резервных копий сайта, обновление движка, чистку логов или перезагрузку сервисов. Делать это вручную каждый раз — не вариант.

Здесь на помощь приходит crontab — встроенный планировщик задач в Linux. Один раз настраиваете расписание, и сервер работает по нему сам.

Что такое crontab простыми словами

Crontab — это программа-планировщик. Она умеет запускать любые команды и сценарии (скрипты) строго по заданному вами расписанию: хоть каждые 10 минут, хоть раз в месяц.

Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти

Как открыть crontab на виртуальном сервере

Сначала подключитесь к серверу через SSH. Затем введите команду:

crontab -e

Эта команда открывает файл с задачами в текстовом редакторе. По умолчанию часто используется vi или vim — они могут показаться сложными для новичков. Чтобы использовать более простой редактор nano, выполните перед открытием:

export EDITOR="nano"

Теперь crontab -e откроется в удобном nano.

Как понять запись в crontab

Каждая задача в crontab записывается в одну строку и состоит из двух частей: время запуска и команда.

Общая схема такая:

* * * * * команда_для_запуска

Пять звёздочек — это параметры времени. Они идут строго по порядку:

  1. Минута (0–59) — когда именно в час выполнить задачу. 0 = ровно в начале часа, 30 = в 30 минут, * = каждую минуту.
  2. Час (0–23) — в котором часу запускать. 3 = в 3 часа ночи, 15 = в 3 часа дня, * = каждый час.
  3. День месяца (1–31) — какого числа. 1 = первого числа, * = каждый день.
  4. Месяц (1–12) — в каком месяце. 1 = январь, * = каждый месяц.
  5. День недели (0–7) — в какой день недели. 0 или 7 = воскресенье, 1 = понедельник, * = любой день.

Золотое правило: звёздочка * означает «все значения», то есть «запускать всегда». А конкретное число — только в этот момент.

Пример:

0 3 * * * /home/user/script.sh

Это означает: запускать файл script.sh каждый день ровно в 3:00 утра.

Настройка планировщика Cron в Linux

Что нужно Запись в crontab
Раз в день в 03:00 0 3 * * * /home/user/script.sh
Каждые 5 минут */5 * * * * /home/user/script.sh
Раз в неделю в 2 часа ночи 0 2 * * 0 /home/user/script.sh
Каждое 1-е число месяца в 04:30 30 4 1 * * /home/user/script.sh
Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти

Популярные задачи с использованием Crontab на VPS

  • Резервная копия сайта (каждый день в 02:00):
    0 2 * * * tar -czf /backup/site.tar.gz /var/www
  • Бэкап базы данных MySQL (в 03:00):
    0 3 * * * mysqldump -u root -pПАРОЛЬ имя_бд > /backup/db.sql
  • Перезапуск веб-сервера Nginx (в 04:00):
    0 4 * * * systemctl restart nginx
  • Очистка временных папок (в 01:00):
    0 1 * * * rm -rf /tmp/*

Как посмотреть, отключить и удалить задания Crontab на VPS

  • Посмотреть все текущие задачи:
    crontab -l
  • Удалить все задачи сразу:
    crontab -r

    (Будьте осторожны — отменить будет нельзя)

  • Отключить одну задачу (закомментировать): Поставьте в начале строки знак #. Задача не удалится, но выполняться не будет.
    # 0 3 * * * /home/user/script.sh
  • Добавить пояснение к задаче: Тоже через #.
    # Бэкап сайта каждый день в 2 часа ночи
    0 2 * * * tar -czf /backup/site.tar.gz /var/www

Где физически хранятся файлы с задачами

В разных Linux-системах расположение может отличаться (вам это редко понадобится, но знать полезно):

Как остановить службу cron

Иногда нужно проверить, работает ли планировщик, или перезапустить его.

Для Ubuntu, Debian и подобных:

# Запустить
systemctl start cron
# Включить автозапуск
systemctl enable cron
# Проверить статус
systemctl status cron
# Остановить
systemctl stop cron

Для CentOS, AlmaLinux, Rocky Linux:

# Запустить
systemctl start crond
# Включить автозапуск
systemctl enable crond
# Проверить статус
systemctl status crond
# Остановить
systemctl stop crond
Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. Перейти

Вывод

Crontab — незаменимый инструмент для любого владельца виртуального сервера. Он помогает избавиться от рутины и автоматизировать практически любые регулярные задачи. Освоить его основные команды очень просто, а польза от этого огромна.