Поиск по сайту:

11 примеров задач планирования Cron в Linux


В этой статье мы рассмотрим и увидим, как мы можем планировать и автоматически запускать задачи Linux в фоновом режиме через регулярные промежутки времени с помощью команды Crontab.

Выполнение частых заданий вручную — сложная задача для системных администраторов, и такие задачи можно планировать и запускать автоматически в фоновом режиме без вмешательства человека с помощью демона cron в Linux или Unix-подобной операционной системе.

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

Cron просыпается каждую минуту и проверяет запланированные задачи в счетном виде – Crontab (CRON TABle) – это таблица, в которой мы можем планировать такие виды повторяющихся задач. .

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

Кронтаб в Linux

Файл Crontab состоит из команд в каждой строке и на самом деле имеет шесть полей, разделенных пробелом или табуляцией. Первые пять полей представляют время выполнения задач, а последнее поле предназначено для команды.

  • Минуты (удерживайте значения в диапазоне 0–59)
  • Час (удерживайте значения в диапазоне 0–23)
  • День месяца (удерживайте значения в диапазоне 1–31)
  • Месяц года (удерживайте значения в диапазоне 1–12 или январь-декабрь). Вы можете использовать первые три буквы названия каждого месяца, например январь или июнь . .)
  • День недели (удерживайте значения в диапазоне 0–6 или Вс-Сб. Здесь также вы можете использовать первые три буквы названия каждого дня, например Вс или Ср.)
  • Команда — /path/to/команда или сценарий, который вы хотите запланировать.

1. Список записей Crontab

Перечислите задачу или управляйте ею с помощью команды crontab с опцией -l для текущего пользователя.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Редактировать записи Crontab

Чтобы отредактировать запись crontab, используйте -e параметр, показанный ниже. В приведенном ниже примере запланированные задания откроются в редакторе VI. Внесите необходимые изменения и прекратите нажимать клавиши :wq, которые автоматически сохранят настройки.

crontab -e

3. Список запланированных заданий Cron пользователя

Чтобы просмотреть запланированные задания конкретного пользователя с именем tecmint, используйте параметр -u (Пользователь) и -l (Список).

crontab -u tecmint -l

no crontab for tecmint

Примечание. Только пользователь root имеет полные права на просмотр записей crontab других пользователей. Обычные пользователи не могут просматривать других.

4. Удалить запись Crontab

Внимание! Crontab с параметром -r удалит завершенные запланированные задания без подтверждения от Crontab. Используйте опцию -i перед удалением crontab пользователя.

crontab -r

5. Запрос перед удалением Crontab

crontab с -i, эта опция запросит подтверждение от пользователя перед удалением crontab пользователя.

crontab -i -r

crontab: really delete root's crontab?

6. Разрешенные специальные символы (*, -, /, ?, #)

  • Звездочка(*) – соответствует всем значениям в поле или любому возможному значению.
  • Дефис(-) – для определения диапазона.
  • косая черта (/) – первое поле /10 означает каждые десять минут или приращение диапазона.
  • Запятая (,) – для разделения элементов.

7. Общесистемное расписание Cron

Системный администратор может использовать предопределенный каталог cron, как показано ниже.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

8. Запланируйте работу на определенное время

Приведенные ниже задания удаляют пустые файлы и каталоги из /tmp ежедневно в 12:30. Вам необходимо указать имя пользователя для выполнения команды crontab. В приведенном ниже примере пользователь root выполняет задание cron.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Специальные строки для общего расписания

@reboot

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

@daily

Один раз в день или можно использовать @midnight.

@weekly

Один раз в неделю.

@yearly

Один раз в год. мы также можем использовать ключевое слово @annually.

Необходимо заменить пять полей команды cron ключевыми словами, если вы хотите использовать их.

10. Несколько команд с двойным амперсандом (&&)

В приведенном ниже примере команды Command1 и Command2 выполняются ежедневно.

crontab -e

@daily <command1> && <command2>

11. Отключите уведомления по электронной почте.

По умолчанию cron отправляет почту на учетную запись пользователя, выполняющего задание cron. Если вы хотите отключить его, добавьте задание cron, как показано в примере ниже. Использование параметра >/dev/null 2>&1 в конце файла перенаправит весь вывод результатов cron в /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

Вывод: Автоматизация задач может помочь нам выполнять задачи более эффективно, без ошибок и эффективнее. Вы можете обратиться к странице руководства crontab для получения дополнительной информации, введя команду «man crontab» в своем терминале.