DevGang
Авторизоваться

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

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

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

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

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

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

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

  1. Минуты (удерживайте значения от 0 до 59)
  2. Час (удерживайте значения от 0 до 23)
  3. День месяца (удерживайте значения от 1 до 31)
  4. Месяц года (удерживайте значения от 1 до 12 или с января по декабрь, вы можете использовать первые три буквы названия каждого месяца, например, январь или июнь).
  5. День недели (удерживайте значения между 0-6 или вс-сб, здесь также вы можете использовать первые три буквы названия каждого дня, например, вс или среда).
  6. Команда - / путь / к / команде или сценарию, который вы хотите запланировать.

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. Разрешенные специальные символы (*, -, /,?, #)

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

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

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

  1. /etc/cron.d
  2. /etc/cron.daily
  3. /etc/cron.hourly
  4. /etc/cron.monthly
  5. /etc/cron.weekly

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

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

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

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

Строки Значения
@reboot<br> Команда запустится при перезагрузке системы.<br>
@daily<br> Один раз в день или можно использовать @midnight.<br>
@weekly<br> Один раз в неделю.<br>
@yearly<br> Один раз в год. Мы также можем использовать ключевое слово @annually.<br>

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

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

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

# crontab -e

@daily <command1> && <command2>

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

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

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

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

Источник:

#Linux
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Vladimir Shaitan - Видео блог о frontend разработке и не только

Посмотреть