Содержание:
- Что такое crontab на VPS?
- Как открыть crontab на виртуальном сервере?
- Как устроена запись в crontab?
- Примеры настроек crontab для VPS
- Частые задачи для VPS/VDS
- Как посмотреть задания на VPS?
- Как удалить задания?
- Как комментировать строки в crontab?
- Как запустить службу cron на VPS?
- Как остановить службу cron?
- Заключение
Арендуйте VPS
Если у вас еще нет виртуального сервера, то ищите подходящего провайдера в нашем рейтинге VPS серверов.
Перейти
Если вы используете VPS/VDS сервер, рано или поздно появится задача что-то запускать автоматически: бэкап сайта, обновление CMS, очистку логов или перезапуск сервиса.
Для этого на виртуальном сервере используется команда crontab. В этой статье разберём всё простыми словами — без сложных терминов.
Что такое crontab на VPS?
crontab — это встроенный планировщик задач в Linux. Он позволяет настроить автоматический запуск команд по расписанию на вашем виртуальном сервере.
Вы один раз настраиваете правило — сервер всё делает сам.
Как открыть crontab на виртуальном сервере?
Подключитесь к VPS по SSH и выполните команду:
crontab -eТак выглядит файл при открытии команды:

Данная команда запускает текстовый редактор по умолчанию и часто это vi или vim непривычный для начинающий пользователей, гораздо удобнее использовать например nano. Чтобы это сделать надо его установить, если не установлен и перед командой crontab -e, выполнить:
export EDITOR="nano"Как устроена запись в crontab?
Каждая строка в crontab состоит из времени запуска и команды.
Выглядит это так:
* * * * * командаПеред командой стоят пять параметров времени. Они идут строго по порядку слева направо: минута, час, число, месяц, день недели.
Вот что означает каждое поле:
- Первая позиция — минута (0–59)
В какую минуту выполнять команду.
Например, 0 — ровно в начале часа, 30 — в 30 минут, * — каждую минуту. - Вторая позиция — час (0–23)
В какой час запускать.
Например,3 — в 3 часа ночи, 15 — в 15:00, * — каждый час. - Третья позиция — день месяца (1–31)
В какое число месяца запускать.
Например, 1 — первого числа, 15 — пятнадцатого, * — каждый день. - Четвёртая позиция — месяц (1–12)
В каком месяце выполнять задачу.
Например, 1 — январь, 12 — декабрь, * — каждый месяц. - Пятая позиция — день недели (0–7)
В какой день недели запускать.
Например, 0 или 7 — воскресенье, 1 — понедельник, 2 — вторник и так далее, * — в любой день недели.
После этих пяти значений указывается сама команда, которую нужно выполнить.
Например:
0 3 * * * /home/user/script.shЭто означает запускать файл script.sh каждый день в 03:00.
Главное запомнить простое правило: если стоит * — значит «в любое время в этом поле». Если стоит число — значит строго в указанное время.
Примеры настроек crontab для VPS
Запуск каждый день в 03:00:
0 3 * * * /home/user/script.shЗапуск каждые 5 минут:
*/5 * * * * /home/user/script.shЗапуск раз в неделю:
0 2 * * 0 /home/user/script.shЧастые задачи для VPS/VDS
Резервная копия сайта:
0 2 * * * tar -czf /backup/site.tar.gz /var/wwwБэкап базы данных:
0 3 * * * mysqldump -u root -pPASSWORD dbname > /backup/db.sqlПерезапуск nginx:
0 4 * * * systemctl restart nginxОчистка временных файлов:
0 1 * * * rm -rf /tmp/*Как посмотреть задания на VPS?
crontab -l
Расположение файлов для разных версий операционных систем:
- Mac OS X – /usr/lib/cron/tabs/ (user cron location /usr/lib/cron/tabs/vivek)
- CentOS/Fedora/Scientific Linux – /var/spool/cron/ (user cron location /var/spool/cron/vivek)
- Debian / Ubuntu Linux – /var/spool/cron/crontabs/ (user cron location /var/spool/cron/crontabs/vivek)
Как удалить задания?
Выполните команду:
crontab -rКак комментировать строки в crontab?
Чтобы временно отключить задачу, не удаляя её, используйте знак # в начале строки.
Пример:
# 0 3 * * * /home/user/script.shТакая строка выполняться не будет.
Также можно добавлять пояснения:
# Бэкап сайта каждый день
0 2 * * * tar -czf /backup/site.tar.gz /var/wwwКак запустить службу cron на VPS?
Для Ubuntu/Debian:
systemctl start cron
systemctl enable cron
systemctl status cron
Для CentOS/AlmaLinux:
systemctl start crond
systemctl enable crond
systemctl status crondКак остановить службу cron?
Для Ubuntu/Debian:
systemctl stop cron
systemctl disable cronДля CentOS/AlmaLinux:
systemctl stop crond
systemctl disable crondВывод
crontab — обязательный инструмент для любого VPS/VDS. С его помощью можно автоматизировать почти любую задачу на виртуальном сервере.
Предыдущая статья:
Изменить права и владельца файлов на Linux VPSСледующая статья:
Что такое wget?
Комментарии ()