Учебники

18) Crontab в Linux

Что такое crontab?

Cron назван в честь греческого слова «Chronos», которое используется для обозначения времени. Это системный процесс, который автоматически выполняет задачи в соответствии с определенным расписанием. Это набор команд, которые используются для выполнения регулярных задач планирования. Crontab расшифровывается как «cron table». Это позволяет использовать планировщик заданий, который известен как cron для выполнения задач.

Crontab — это также название программы, которая используется для редактирования этого расписания. Он управляется файлом crontab, файлом конфигурации, в котором указываются команды оболочки, которые периодически запускаются для определенного расписания.

Из этого руководства по операционной системе вы узнаете:

Зачем использовать Cronjobs?

Вот причины использования Cronjobs в Linux:

  • Помогает ОС делать резервные копии файлов журнала или базы данных по расписанию.
  • Удалить старые файлы журнала
  • Архивировать и очищать таблицы базы данных
  • Отправьте любое электронное письмо с уведомлением, например, рассылку новостей, письмо об истечении срока действия пароля
  • Регулярная очистка кэшированных данных
  • Crontab является идеальным вариантом для автоматизации заданий Unix.
  • Используется для автоматизации обслуживания системы

Как использовать cron в Linux?

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

Linux Crontab формат

Crontab в Linux имеет шесть полей. Первые пять полей определяют время и дату выполнения, а 6-е поле используется для выполнения команды.

Синтаксис Crontab:

[Minute] [hour] 
[Day_of_the_Month] 
[Month_of_the_Year] 
[Day_of_the_Week] 
[command]

  • Astrics (*): использовать для сопоставления
  • Определить диапазон: Позволяет определить диапазон с помощью дефиса, например 1-10 или 30-40, или январь-март.
  • Определить несколько диапазонов: позволяет определять различные диапазоны с помощью команды, разделенной как apr-jun, oct-dec.

Как добавить / изменить Crontab

Пользователь может редактировать свои задания crontab с помощью следующей команды crontab:

$ crontab -u -e 

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

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

$ crontab -l

Чтобы удалить задачи crontab, используйте следующую команду.

$ crontab -r

Чтобы добавить или обновить задание в crontab, используйте приведенную ниже команду.

crontab -e

Команда для редактирования crontab другого пользователя

crontab -u username -e

Как перечислить Crontab

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

crontab -l

Команда для просмотра записей crontab определенного пользователя:

crontab -u username -l

Важные примеры Crontab

Вот несколько важных примеров Crontab

Описание команда
Команда Cron для выполнения различных заданий планирования. Ниже приведенную команду выполняйте в 7 утра и 5 вечера ежедневно.
0 7,17 * * * /scripts/script.sh
Команда на выполнение cron через каждые 5 минут.
*/5* * * * *  /scripts/script.sh
Команда Cron scheduler поможет вам выполнить задачу каждый понедельник в 5 часов утра. Эта команда полезна для выполнения еженедельных задач, таких как очистка системы.
0 5 * * mon  /scripts/script.sh
Команда запускает ваш скрипт с интервалом в 3 минуты.
*/3 * * * * /scripts/monitor.sh
Команда, чтобы запланировать cron, для которого выполняется в течение определенного месяца. Эта команда для запуска задач запускается в феврале, июне и сентябре месяцев. Иногда нам нужно запланировать задачу для выполнения выбранной ежемесячной задачи.
* * * feb,jun,sep *  /script/script.sh
Команда для выполнения в выбранные дни. Этот пример будет запускаться каждый понедельник и среду в 17:00.
0 17 * * mon,wed  /script/script.sh
Эта команда позволяет выполнять cron в первую субботу каждого месяца.
0 2 * * sat  [ $(date +%d) -le 06 ] && /script/script.sh
Команда для запуска скрипта с интервалом в 6 часов, чтобы его можно было настроить, как показано ниже.
0 */6 * * * /scripts/script.sh
Эта команда назначает выполнение задачи дважды в понедельник и вторник. Используйте следующие настройки, чтобы сделать это.
0 4,17 * * mon,tue /scripts/script.sh
Команда назначает выполнение cron через каждые 15 секунд.
* * * * * /scripts/script.sh
* * * * *  sleep 15; /scripts/script.sh
Команда для планирования задач на ежегодной основе.
временная метка @yearly is = to «0 0 5 1 *». Это выполняет задачу на пятой минуте каждого года. Вы можете использовать его для отправки новогодних поздравлений.
@yearly /scripts/script.sh 
Командные задания выполнять ежемесячно.
@monthly timestamp похож на «0 0 1 * *». Это выражение команды позволяет выполнить задачу в первую минуту месяца.
@monthly /scripts/script.sh
Команда для выполнения нескольких задач с использованием одного cron.
* * * * * /scripts/script.sh; /scripts/scrit2.sh
Команда для планирования задач для выполнения на еженедельной основе.
@weekly timestamp похож на «0 0 4 * солнце». Это используется для выполнения еженедельных задач, таких как очистка системы и т. Д.
@weekly /bin/script.sh
Задание будет запланировано на ежедневное выполнение.
@daily timestamp похож на «0 2 * * *». Выполняет задание на второй минуте каждого дня.
@daily /scripts/script.sh
Позволяет выполнять задачи по часам.
@hourly timestamp похож на «0 * * * *». Эта команда выполняет задачу в первую минуту каждого часа.
@hourly /scripts/script.sh
Позволяет выполнять задачи при перезагрузке системы.
Выражение @reboot полезно для тех задач, которые система хочет запустить при запуске системы. Это полезно для автоматического запуска фоновых задач.
@reboot /scripts/script.sh

Резюме:

  • Cron назван в честь греческого слова «Chronos», которое используется для обозначения времени.
  • Cronjobs помогает ОС делать резервные копии файлов журнала или базы данных по расписанию.
  • Системный пакет Linux имеет полезный планировщик задач с именем crontab, который может быть запланирован для запуска автоматизированного процесса с правами root.
  • Crontab в Linux имеет шесть полей. Первые пять полей определяют время и дату выполнения, а 6-е поле используется для выполнения команды.