Настройка cron (заданий по расписанию) на VDSina
Хочу себе такие же кнопкиНастройка cron (заданий по расписанию) на VDSina
Что вы получите:
- Понимание, как работает планировщик cron и зачем он нужен в реальном сервере.
- Умение создавать, редактировать и проверять расписания задач без ошибок.
- Навык отладки и мониторинга выполненных заданий, чтобы ваш сервис работал без сбоев.
1. Почему cron – ваш лучший помощник
Представьте, что сервер — это офисный работник, а cron — его личный секретарь. Секретарь записывает в календарь, когда нужно выполнить важные дела: отправить отчёт, очистить временные файлы, проверить обновления. Вы просто задаёте правила, а cron делает всё автоматически, даже когда вы спите.
На 🏰 VDSina (виртуальный выделенный сервер) cron уже установлен в большинстве образов Linux (Ubuntu, Debian, CentOS). Вам остаётся лишь сконфигурировать расписание под свои задачи.
2. Основные понятия
| Термин | Описание | Пример |
|---|---|---|
| cron | Демон‑служба, которая каждый минуту проверяет таблицу crontab и запускает нужные команды. | cron запускает скрипт backup.sh каждый день в 02:00. |
| crontab | Таблица расписаний, в которой каждая строка — отдельное задание. | 0 2 * * * /home/user/backup.sh |
| минута, час, день месяца, месяц, день недели | Пять полей, определяющих, когда запускать задание. | 30 14 * * 1-5 → каждый будний день в 14:30. |
| специальные строки | @reboot, @yearly, @monthly, @weekly, @daily, @hourly. |
@reboot /usr/bin/python3 /home/user/start.py |
Все поля могут принимать звёздочку (*) — «любое значение», а также список, диапазон и шаг (*/5).
3. Как открыть свой crontab
crontab -e
- При первом запуске система предложит выбрать редактор (vim, nano, etc.). Выбирайте тот, с которым вам удобно.
- Файл открывается с комментариями‑подсказками. Не удаляйте их, пока не разберётесь.
Важно: каждый пользователь имеет свой отдельный crontab. На 🏰 VDSina вы, скорее всего, работаете под пользователем root или обычным user. Если хотите отредактировать crontab другого пользователя, используйте crontab -e -u username (только от root).
4. Синтаксис строки задания
* * * * * команда_для_выполнения # комментарий
│ │ │ │ │
│ │ │ │ └─ День недели (0‑7) (воскресенье = 0 или 7)
│ │ │ └───── Месяц (1‑12)
│ │ └─────── День месяца (1‑31)
│ └───────── Час (0‑23)
└─────────── Минута (0‑59)
Примеры:
| Строка | Что делает |
|---|---|
0 3 * * * /usr/local/bin/clean_tmp.sh |
Каждый день в 03:00 запускает скрипт очистки /tmp. |
*/15 * * * * /usr/bin/php /var/www/site/artisan schedule:run >> /dev/null 2>&1 |
Каждые 15 минут запускает Laravel‑scheduler. |
30 22 * * 1 /home/user/weekly_report.sh |
По понедельникам в 22:30 отправляет отчёт. |
@reboot /usr/bin/python3 /home/user/start_server.py |
При старте сервера сразу запускает Python‑приложение. |
5. Практические нюансы на VDSina
5.1. Путь к исполняемому файлу
VDSina использует minimal‑install образ, где переменные окружения могут отличаться от вашего пользовательского ~/.bashrc. Чтобы гарантировать, что команда найдёт нужный исполняемый файл, указывайте полный путь:
* * * * * /usr/bin/python3 /home/user/scripts/task.py >> /home/user/logs/task.log 2>&1
5.2. Перенаправление вывода
>> /path/to/log.log— добавлять вывод в файл.2>&1— перенаправлять ошибки в тот же файл.
Если вы не хотите, чтобы cron отправлял письма с выводом, отправляйте всё в /dev/null:
0 0 * * * /usr/bin/apt-get update >> /dev/null 2>&1
5.3. Переменные окружения
В начале crontab можно задать переменные, которые будут доступны всем заданиям:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=you@example.com # куда отправлять письма с выводом
5.4. Проверка синтаксиса
После сохранения файла cron автоматически проверит синтаксис. Если будет ошибка, вы увидите сообщение в терминале. Чтобы проверить вручную, используйте:
crontab -l # вывести текущие задания
5.5. Логи cron
По умолчанию в Ubuntu/Debian логи находятся в /var/log/syslog. Фильтруйте их:
grep CRON /var/log/syslog
В CentOS/AlmaLinux в /var/log/cron.
6. Пример полного crontab для типичного проекта на VDSina
# ------------------------------
# Пользователь: root
# Описание: задачи проекта "MySite"
# ------------------------------
# Путь к исполняемым файлам
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
MAILTO=admin@mysite.com
# 1. Ежедневный бэкап базы данных в 02:30
30 2 * * * /usr/bin/mysqldump -u dbuser -p'StrongPass' mydb > /var/backups/db_$(date +\%F).sql 2>> /var/log/cron_errors.log
# 2. Очистка временных файлов каждые 6 часов
0 */6 * * * /usr/local/bin/clean_tmp.sh >> /var/log/clean_tmp.log 2>&1
# 3. Запуск Laravel‑scheduler каждую минуту
* * * * * /usr/bin/php /var/www/mysite/artisan schedule:run >> /dev/null 2>&1
# 4. Перезапуск nginx после перезагрузки сервера
@reboot /usr/sbin/service nginx restart >> /var/log/nginx_restart.log 2>&1
Совет: храните скрипты в отдельной директории, например
/home/youruser/scripts/, и делайте их исполняемыми (chmod +x script.sh).
7. Отладка и мониторинг
-
Проверка статуса службы
systemctl status cron # Ubuntu/Debian systemctl status crond # CentOS/AlmaLinux -
Тестовый запуск
Если нужно убедиться, что скрипт работает, запустите его вручную:
/usr/local/bin/clean_tmp.sh -
Логи
- Ошибки cron →
/var/log/syslog(Ubuntu) или/var/log/cron(CentOS). - Вывод скриптов → файлы, указанные в
>>.
- Ошибки cron →
-
Отправка почты
Если вы задали
MAILTO, cron будет отправлять письмо с выводом. Убедитесь, что на 🏰 VDSina установлен MTA (например,postfix).
8. Часто задаваемые вопросы
| Вопрос | Ответ |
|---|---|
| cron не запускает скрипт | Проверьте, что скрипт имеет права +x и указаны полные пути. |
| Получаю письма с ошибкой “Permission denied” | Скрипт пытается писать в директорию, к которой у пользователя нет прав. Используйте chmod или chown. |
| Как задать задание только в будние дни? | * * * * 1-5 command – дни недели от 1 (понедельник) до 5 (пятница). |
| Нужен ли перезапуск cron после изменения crontab? | Нет, cron автоматически перечитывает файл после сохранения. |
| Можно ли задать несколько команд в одной строке? | Да, разделяйте их && (последовательно) или ; (независимо). Пример: 0 0 * * * cd /var/www && git pull && php artisan migrate. |
9. Полезные ресурсы
- Официальная документация cron для Ubuntu: https://help.ubuntu.com/community/CronHowto?partner=5095
- Руководство по crontab для CentOS: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.8_single_page/#cron?partner=5095
- Статья о лучших практиках планировщика на VDSina: https://vdsina.ru/blog/cron-best-practices?partner=5095
Практика для закрепления
-
Создайте задание, которое будет каждый день в 04:15 удалять файлы старше 7 дней из каталога
/var/www/tmp.
Подсказка: используйтеfind /var/www/tmp -type f -mtime +7 -delete. -
Настройте тестовый cron, который каждые 2 минуты будет писать текущую дату и время в файл
/home/you/cron_test.log. Проверьте, что запись происходит. -
Сделайте резервную копию базы MySQL каждый понедельник в 01:00, сохраняйте файл в
/backups/mysql/с датой в имени. Убедитесь, что пароль не хранится в открытом виде в crontab (подумайте о файле.my.cnf). -
Отладка: ваш скрипт
script.shпишет ошибку «command not found», когда его запускает cron, но работает вручную. Что проверить? -
Эксперимент: используйте специальную строку
@rebootдля запуска скриптаstart_services.shпосле каждой перезагрузки сервера. Как проверить, что он выполнен?
Поздравляем! Вы теперь умеете полностью управлять планировщиком cron на VDSina, автоматизировать рутинные операции и поддерживать сервер в стабильном состоянии. Не бойтесь экспериментировать – каждый новый скрипт делает ваш сервис более надёжным и гибким. Удачной автоматизации!
Английский видеочат для путешествий
CamZamZam - онлайн фото с вебкамеры с эффектами
Чат рулетка 2026: Интерактивные элементы
Чат-рулетка: случайный собеседник в одно нажатие
Чат рулетка в 2026: будущие функции
Интерьер с использованием текстиля
Как настроить бэкапы для вашего сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как обновить PHP на хостинге Host.bg
Как решить проблемы с загрузкой сайта на Host.bg
Какие бывают ЛОР болезни у детей
Калькулятор зарплаты SEO-оптимизатора
Кассовые терминалы с оплатой картами
Монетизация через платные услуги
Мск: ИП или ООО — лучший старт для бизнеса?
Общение в интернете без риска
Общение вживую через экран
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Ошибки при настройке хостинга и их решения
Проблемы с доменами и их решения на хостинге Host.bg
Сколько стоит биткоин
Сравнение ценовых диапазонов хостинга Host.bg
Сумки с бусинами
Техника для строительства загородных трасс
Трубная продукция для трубопроводных конструкций
Узбекские фильмы фэнтези
Видео рулетка 18+
Видеочат с случайным собеседником онлайн
Видеообщения по всему миру