hostprofi.ru
Подобрать хостинг
Термин·буква R

RPM

краткое определение

Cron — планировщик задач в Unix-системах. Запускает команды и скрипты по расписанию: раз в минуту, час, день, неделю или по произвольному времени, заданному в формате crontab.

Cron — системный демон для запуска команд по расписанию в Unix/Linux. Читает файлы crontab (cron table) и периодически — каждую минуту — проверяет, нужно ли запустить какую-либо задачу. Без Cron были бы невозможны автоматические резервные копии, обновление SSL-сертификатов, ротация логов и рассылки по расписанию.

Как работает

Демон cron запускается как системный сервис (systemctl status cron или crond в RHEL-системах). Каждую минуту читает системный crontab (/etc/crontab, /etc/cron.d/) и пользовательские crontab-файлы (/var/spool/cron/crontabs/). Если текущее время совпадает с расписанием задачи — запускает команду.

Формат строки crontab: минута час день-месяца месяц день-недели команда. Поддерживаются: конкретные значения (30), диапазоны (1-5), шаги (*/5 — каждые 5), перечисления (1,3,5). Специальные алиасы: @daily (00:00), @weekly (воскресенье 00:00), @reboot (при загрузке).

Переменная окружения MAILTO в crontab задаёт адрес для вывода задачи. Без неё вывод отправляется системной почтой локальному пользователю — что часто нежелательно. Редирект > /dev/null 2>&1 подавляет весь вывод.

История

Cron создан Кеном Томпсоном для Unix Version 7 в 1979 году. В 1987 году Пол Викси переработал cron для SysV, добавив поддержку пользовательских crontab-файлов (Vixie Cron). Этот вариант стал основой для большинства современных реализаций, включая ISC Cron в Linux. В systemd появился Timer — более гибкий аналог cron с зависимостями между задачами и логированием через journald.

Примеры задач

  • 0 2 * * * /usr/bin/certbot renew --quiet — обновление SSL-сертификата в 02:00 каждый день
  • */15 * * * * /home/user/check_uptime.sh — скрипт каждые 15 минут
  • 0 0 * * 0 /usr/bin/mysqldump -u root db > /backup/db.sql — дамп базы каждое воскресенье в полночь
  • @reboot /usr/bin/php /var/www/site/artisan queue:work & — запуск воркера при перезагрузке

На что обращать внимание

Cron запускает задачи с минимальным окружением — переменные PATH, HOME, LANG могут отличаться от интерактивной оболочки. Команды, которые работают в терминале, могут падать в cron из-за разного PATH. Решение: указывать полный путь к исполняемым файлам (/usr/bin/php вместо php) или явно задавать PATH в начале crontab. Панели управления хостингом (ISPmanager, cPanel) предоставляют GUI для управления cron без ручного редактирования файлов.

RPM и управление пакетами

RPM используется в семействе дистрибутивов Red Hat: AlmaLinux, RHEL, CentOS, Fedora, Rocky Linux. Высокоуровневые менеджеры пакетов yum и dnf работают поверх RPM: автоматически разрешают зависимости и загружают пакеты из репозиториев. Команды: dnf install nginx, dnf update, dnf remove php. В отличие от Ubuntu/Debian (dpkg/apt), RPM-пакеты имеют расширение .rpm. На VPS с AlmaLinux 9 пакеты nginx, PHP, Docker доступны через EPEL-репозиторий. На Linux: установить RPM-пакет напрямую: rpm -ivh package.rpm.

Другие термины