Как да създавате и управлявате Cron задания на Linux


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

Задачите на Cron се изпълняват във фонов режим и постоянно проверяват файла /etc/crontab и /etc/cron.*/ и /var/spool/cron/ директории. Cron файловете не трябва да се редактират директно и всеки потребител има уникален crontab.

Как тогава трябва да създавате и редактирате cron задачи? С crontab команди. Crontab е методът, който използвате за създаване, редактиране, инсталиране, деинсталиране и изброяване на cron задачи.

Командата за създаване и редактиране на cron задачи е същата и проста. И още по-готиното е, че не е необходимо да рестартирате cron след създаване на нови файлове или редактиране на съществуващи.


crontab -e

Cron Синтаксис

Както при всеки език, работата с cron е много по-лесна, когато разбирате синтаксиса му и има 2 формата, които трябва да знаете:


A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh

Обяснение на горния синтаксис на cron:

  • A: Минути диапазон: 0 – 59
  • B: Часов диапазон: 0 – 23
  • C: Дни диапазон: 0 – 31
  • D: Месеци диапазон: 0 – 12
  • E: Дни от седмицата диапазон: 0 – 7. Започвайки от понеделник, 0 или 7 представлява неделя
  • ПОТРЕБИТЕЛСКО ИМЕ: заменете това с вашето потребителско име
  • /path/to/command – Името на скрипта или командата, които искате да планирате

Това не е всичко Cron използва 3 операторни символа, които ви позволяват да посочите множество стойности в поле:

  1. Звездичка (*): указва всички възможни стойности за поле
  2. Запетая (,): указва списък със стойности
  3. Тире (-): указва диапазон от стойности
  4. Разделител (/): указва стойност на стъпка

След като вече знаете синтаксиса и операторите на Cron, нека видим някои примери за cron.

Примери за задачи на Cron

Първата стъпка за стартиране на cron команди е инсталирането на вашия crontab с командата:


crontab -e

Стартирайте /root/backup.sh в 3 сутринта всеки ден:


0 3 * * * /root/backup.sh

Стартирайте script.sh в 16:30 на второ число на всеки месец:

30 16 2 * * /path/to/script.sh

Стартирайте /scripts/phpscript.php в 10 вечерта през седмицата:

0 22 * * 1-5 /scripts/phpscript.php

Стартирайте perlscript.pl в 23 минути след полунощ, 2 сутринта и 4 сутринта, всеки ден:

23 0-23/2 * * * /path/to/perlscript.pl

Изпълнявайте Linux команда в 04:05 всяка неделя:

5 4 * * sun /path/to/linuxcommand

Опции на Cron

Избройте cron задания.


crontab -l
OR
crontab -u username -l

Изтрийте всички задачи на crontab.

crontab -r

Изтриване на задача на Cron за конкретен потребител.


crontab -r -u username

Низове в Crontab

Низовете са сред любимите неща на разработчиците, защото помагат да се спести време чрез елиминиране на повтарящото се писане. Cron има специфични низове, които можете да използвате за по-бързо създаване на команди:

  1. @hourly: Изпълнява се веднъж на всеки час, т.е. „0 * * * *
  2. @midnight: Изпълнявайте веднъж всеки ден, т.е. „0 0 * * *
  3. @daily: същото като полунощ
  4. @weekly: Изпълнявайте веднъж всяка седмица, т.е. „0 0 * * 0
  5. @monthly: Изпълнявайте веднъж всеки месец, т.е. „0 0 1 * *
  6. @annually: Изпълнявайте веднъж годишно, т.е. „0 0 1 1 *
  7. @годишно: същото като @годишно
  8. @reboot: Стартирайте веднъж при всяко стартиране

Ето как например да архивирате системата си всеки ден:

@daily /path/to/backup/script.sh

На този етап имате всичко необходимо за създаване и управление на системни задачи с помощта на Cron. Вече можете да започнете да настройвате и поддържате няколко среди, като използвате планирани команди.

Колко потребител на Cron сте? И има ли подробности, които можете да допринесете за статията? Дискусионното поле е по-долу.

Когато разберете достатъчно за това как работи Crontab, можете да използвате тези изящни помощни програми за генериране на Crontab, за да генерирате безплатно линии на crontab.

Освен това можете да прочетете статията на Ubuntu за това как да използвате Cron тук. Има ресурси, които може да намерите за полезни.