Планирование повторяющихся задач в Linux

Планирование повторяющихся задач в Linux

Работа с Cron

Cron — это демон, который выполняет команды по заданному расписанию. Файл, содержащий расписание, называется crontab (Cron Table).

1. Проверка службы

Прежде чем планировать задания, убедись, что служба Cron запущена.

  • Команда: sudo systemctl status crond
    • Примечание: В Red Hat-подобных системах (Fedora, CentOS) демон часто называется crond. В Debian/Ubuntu — просто cron.

2. Редактирование Crontab (пользовательские задания)

Наиболее распространенный способ планирования задач — создание пользовательского crontab.

  • Команда: crontab -e
    • Открывает crontab для текущего пользователя в текстовом редакторе по умолчанию (vim или nano).
  • Синтаксис: Каждая строка в crontab содержит шесть полей, разделенных пробелами:
Позиция
Диапазон
Назначение
1
Минута
0–59
Минута часа.
2
Час
0–23
Час суток.
3
День месяца
1–31
День месяца.
4
Месяц
1–12 (или названия)
Месяц года.
5
День недели
0–7 (0 и 7 — воскресенье)
День недели.
6
Команда
Полная команда, включая абсолютные пути.
  • Специальный символ : Означает «каждый» (например, в поле часа означает «каждый час»).
  • Пример задания:13 * * * * logger "HELLO"
    • Это задание запускается в 13 минут каждого часа, каждый день, каждый месяц, каждый день недели и записывает сообщение «HELLO» в системный журнал.

3. Проверка выполнения задания

Cron-задания не выводят информацию на экран. Их результат записывается в системный журнал.

  • Команда: sudo journalctl
  • Проверка: Используй journalctl (журнал Systemd) для просмотра логов и подтверждения того, что команда logger успешно выполнила запись.

Планирование одноразовых задач (at)

Команда at используется для планирования выполнения команды только один раз в определенное время.

1. Проверка службы

Прежде чем использовать at, необходимо убедиться, что демон atd активен и запущен.

  • Команда: sudo systemctl status atd
  • Назначение: Демон atd следит за расписанием и выполняет запланированные задания в нужный момент.

2. Создание задания

Для создания задания пользователь открывает специальную оболочку at, вводит команду и завершает ввод.

Шаг
Команда
Назначение
Запуск оболочки at
at [время] (например, at 10:20)
Открывает интерактивную оболочку для ввода команд.
Ввод команды
logger "message" или touch /tmp/10_22
Ввод команд, которые должны быть выполнены в указанное время.
Завершение ввода
Ctrl+D
Критически важно! Этот символ конца файла (EOF) завершает ввод и сохраняет задание в очередь at.

3. Форматы времени

Команда at очень гибкая и может принимать различные форматы времени:

  • Конкретное время: at 10:20
  • Слово: at tomorrow, at noon (полдень)
  • Относительное время: at now + 1 hour

4. Управление заданиями

Задания, запланированные через at, помещаются в очередь. Каждому заданию присваивается уникальный номер.

Команда
Назначение
atq (at query)
Просмотр очереди — показывает список всех заданий, ожидающих выполнения.
atrm [номер] (at remove)
Удаление задания — отменяет запланированное задание по его номеру.

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *