Главная > Управление пакетами и системой > cron

cron: демон планирования периодических задач

cron — это демон (фоновая служба) в системах Linux/Unix, который автоматически выполняет команды или скрипты в указанное время. Обычно пользователи или системные администраторы управляют задачами (cron job) с помощью команды crontab. Этот демон автоматически запускается при загрузке системы, работает в фоновом режиме и периодически проверяет и выполняет зарегистрированные задачи.

Обзор

Демон cron является одной из ключевых служб системы и используется для автоматизации повторяющихся задач. Пользователи могут настраивать команды для выполнения, время выполнения и периодичность с помощью файла crontab. Существует файл crontab для всей системы (/etc/crontab) и отдельные файлы crontab для каждого пользователя.

Основные характеристики

  • Планирование задач по времени
  • Управление задачами для пользователей и всей системы
  • Автоматический запуск в фоновом режиме
  • Используется для регулярного обслуживания системы и автоматизации

Основные опции

Демон cron обычно запускается автоматически при загрузке системы, и редко возникает необходимость запускать его напрямую из командной строки. Приведенные ниже опции в основном используются для ручного запуска или отладки демона cron. Пользователи в основном управляют задачами cron с помощью команды crontab.

Управление демоном и отладка

Сгенерированная команда:

Комбинируйте команды.

Описание:

`cron` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Редко возникает необходимость запускать сам демон cron напрямую; чаще всего его состояние проверяется через systemctl, а задачи управляются через crontab.

Проверка статуса службы cron

systemctl status cron

Проверяет, запущен ли демон cron в данный момент.

Редактирование файла crontab текущего пользователя

crontab -e

Добавление, изменение или удаление задач cron для текущего пользователя.

Просмотр списка задач crontab текущего пользователя

crontab -l

Выводит все задачи cron, зарегистрированные для текущего пользователя.

Просмотр содержимого файла crontab системы

cat /etc/crontab

Проверяет задачи cron, применяемые ко всей системе. (Будьте осторожны при редактировании)

Перезапуск службы cron

sudo systemctl restart cron

Перезапускает службу для применения изменений в настройках cron к демону.

Советы и меры предосторожности

Советы и меры предосторожности для эффективного и безопасного управления задачами cron.

Основные советы

  • **Переменные окружения**: В среде crontab переменные окружения оболочки могут быть ограничены, поэтому рекомендуется явно устанавливать необходимые переменные окружения в скрипте или использовать полные пути.
  • **Проверка логов**: Если задачи cron не выполняются как ожидалось, вы можете проверить логи через syslog или команду journalctl -u cron, чтобы определить причину проблемы.
  • **Перенаправление вывода**: Стандартный вывод (stdout) и стандартный вывод ошибок (stderr) задач cron по умолчанию отправляются по электронной почте пользователю, выполняющему задачу. Чтобы избежать ненужной отправки электронной почты, перенаправьте вывод в /dev/null или сохраните его в лог-файл (например: `command > /path/to/log.log 2>&1`).
  • **Использование @reboot**: Для задач, которые должны выполняться только один раз при перезагрузке системы, можно использовать ключевое слово `@reboot`.
  • **Синтаксис crontab**: Необходимо точно понимать и использовать синтаксис расписания в формате `минута час день месяц день_недели`.

Те же команды в категории