crontab

Как запланировать задачу в Linux?

Как запланировать задачу в Linux?
При использовании операционной системы на базе UNIX определенные задачи должны выполняться повторно. Запускать их вручную каждый раз требует много времени и в целом неэффективно. Чтобы решить эту проблему, в UNIX есть встроенные планировщики задач. Эти планировщики задач действуют как умный будильник. Когда будильник сработает, операционная система запустит заранее определенную задачу.

В случае Linux он поставляется с двумя основными, но мощными инструментами: демон Cron (планировщик задач по умолчанию) и at (больше подходит для одноразового планирования задач).

В этом руководстве вы узнаете, как запланировать задачу в Linux.

Планирование задач в Linux

Cron
Демон cron отвечает за выполнение множества заданий в определенное время. Эти задачи обычно выполняются в фоновом режиме в запланированное время. Он предлагает большую гибкость независимо от задачи, независимо от интервала (час, неделя, месяц, год и т. Д.).

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

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

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

$ crontab -l


Хотите список заданий cron для другого пользователя? Вместо этого запустите эту команду.

$ sudo crontab -u -l


Чтобы отредактировать скрипт crontab, запустите команду. Чтобы отредактировать файл crontab для root, выполните следующую команду с привилегиями sudo.

$ crontab -e


Каждая строка в скрипте crontab определяет задачу. Вот краткое описание записей crontab.

$

Вот список всех возможных значений для всех этих полей. Если вместо числового значения используется звездочка (*), будут использоваться все возможные значения поля.

  • минут: от 0 до 59
  • часы: с 0 до 23
  • день месяца: с 1 по 31
  • месяц: с 1 по 12
  • день недели: от 0 (воскресенье) до 6 (суббота)

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

в
Хотя cron является основным способом планирования задач, at предлагает возможность запускать команду / скрипт в определенное время или с фиксированным интервалом, обратите внимание, что at будет запускать целевое задание один раз, тогда как cron будет повторно запускать задание с интервалом. Инструмент at менее популярен по сравнению с cron, но его относительно проще использовать. Вы можете использовать определенные ключевые слова, например, полночь или чаепитие (4 P.M.).

Этот инструмент не предустановлен в большинстве дистрибутивов Linux. Чтобы установить в, запустите соответствующую команду в соответствии с вашим дистрибутивом.

Для Debian / Ubuntu и производных.

$ Sudo apt install -y в


Для CentOS / RHEL и производных.

$ yum установить в

Для Arch Linux и производных.

$ sudo Pacman -S в

Для Fedora и производных.

$ sudo dnf install at

После завершения установки включите демон at.

$ sudo systemctl enable --now atd.услуга


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

$ сейчас + 1 час


Для запуска желаемой задачи в 6 P.M., через шесть дней вместо этого выполните следующую команду.

$ в 18:00 + 6 дней


Когда вы запускаете команду, at будет запрашивать запуск команды (ей). Чтобы выйти из приглашения, нажмите «Ctrl + d».»По желанию будет представлена ​​сводка запланированных задач и время их выполнения.

Это просто базовое использование. Более последовательный способ использования at может заключаться в выполнении сценария bash, содержащего все задачи, которые необходимо выполнить. Хотите узнать больше о сценариях bash? Проверять

$ в 18:00 + 6 дней -ff