Если у вас есть виртуальный сервер VPS/VDS, то рано или поздно вам захочется автоматизировать рутину: создание резервных копий сайта, обновление движка, чистку логов или перезагрузку сервисов. Делать это вручную каждый раз — не вариант.
Здесь на помощь приходит crontab — встроенный планировщик задач в Linux. Один раз настраиваете расписание, и сервер работает по нему сам.
Что такое crontab простыми словами
Crontab — это программа-планировщик. Она умеет запускать любые команды и сценарии (скрипты) строго по заданному вами расписанию: хоть каждые 10 минут, хоть раз в месяц.
| Если у вас еще нет виртуального сервера, его можно арендовать у проверенных провайдеров из нашей подборки надежных VPS серверов. | Перейти |
Как открыть crontab на виртуальном сервере
Сначала подключитесь к серверу через SSH. Затем введите команду:
crontab -e
Эта команда открывает файл с задачами в текстовом редакторе. По умолчанию часто используется vi или vim — они могут показаться сложными для новичков. Чтобы использовать более простой редактор nano, выполните перед открытием:
export EDITOR="nano"
Теперь crontab -e откроется в удобном nano.
Как понять запись в crontab
Каждая задача в crontab записывается в одну строку и состоит из двух частей: время запуска и команда.
Общая схема такая:
* * * * * команда_для_запуска
Пять звёздочек — это параметры времени. Они идут строго по порядку:
- Минута (0–59) — когда именно в час выполнить задачу.
0= ровно в начале часа,30= в 30 минут,*= каждую минуту. - Час (0–23) — в котором часу запускать.
3= в 3 часа ночи,15= в 3 часа дня,*= каждый час. - День месяца (1–31) — какого числа.
1= первого числа,*= каждый день. - Месяц (1–12) — в каком месяце.
1= январь,*= каждый месяц. - День недели (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-системах расположение может отличаться (вам это редко понадобится, но знать полезно):
- Debian / Ubuntu:
/var/spool/cron/crontabs/ - CentOS / Fedora / AlmaLinux:
/var/spool/cron/ - macOS:
/usr/lib/cron/tabs/
Как остановить службу 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 — незаменимый инструмент для любого владельца виртуального сервера. Он помогает избавиться от рутины и автоматизировать практически любые регулярные задачи. Освоить его основные команды очень просто, а польза от этого огромна.
