Цронтаб у Линуку – са примерима и алатима у реалном времену

Хајде да истражимо цронтаб, његове команде и разне операције повезане са Цронтаб-ом.

Научићемо како да закажемо задатке користећи црон услужни програм, а на крају ћемо такође разговарати о неким онлајн алатима који нам помажу у форматирању и тестирању црон команди.

Преглед садржаја

Порекло

Цронтаб је скраћеница од „црон табле“. Реч црон је преузета од грчке речи Цхронос што значи време. Цронтаб је системски демон процес који ће аутоматски обављати неке задатке и послове према заказаном времену.

  Брзо савладајте брзо читање помоћу Реадси веб апликације

Случајеви употребе

Цронтаб је користан за обављање различитих операција као што су руковање аутоматизованим резервним копијама, ротирање датотека евиденције, синхронизација датотека између удаљених машина и брисање привремених фасцикли, итд. Цронтаб се може користити за било коју врсту посла, али постаје посебно користан када почнемо да се бавимо систем администрације врста посла.

Користећи црон, администратор може да закаже покретање посла у одређено време и дан.

Па да видимо како ово можемо да поставимо.

Цронтаб синтакса

Да би извршио листу команди, црон услужни програм чита конфигурационе датотеке. За тумачење редова у табелама конфигурације цронтаб-а, следи Цронтаб синтакса. Цронтаб има шест поља, а првих пет(1-5) поља дефинишу датум и време извршења. Последње поље, тј. 6. поље, може бити корисничко име и/или задатак /посао/команда/скрипта који треба да се изврши.

* * * * * КОМАНДА УСЕР_НАМЕ/СЦРИПТ-ТО-ЕКСЕЦУТЕ

│ │ │ │ │
│ │ │ │ │
│ │ │ │ |_________ Дан у недељи (0 – 6) (0 је недеља, или користите имена)
│ │ │ |____________ Месец (1 – 12),* значи сваки месец
│ │ |______________ Дан у месецу (1 – 31),* значи сваки дан
│ |________________ Сат (0 – 23),* значи сваки сат
|____________________ Минут (0 – 59), * означава сваки минут

напомене:

  • Астериск
  • се користи за подударање свих могућих вредности за поље. На пример, звездица која се користи у пољу сата била би еквивалентна сваком сату или би звездица у пољу месеца била еквивалентна сваком месецу.

корисничко име је опционо (доступно само ако је системска цронтаб датотека)

Примери:

Хајде да разумемо горњу синтаксу са неким примерима

0 5 * * * /scripts/job.sh

1. Закажите извршавање црона у 5 ујутро сваког дана

0 6,18 * * * /scripts/job.sh

2. Закажите да се црон извршава два пута дневно у 6 ујутро и у 18 поподне

* * * * * /scripts/job.sh

3. Закажите црон за извршавање сваког минута

0 19 * * mon /scripts/job.sh

4. Закажите црон који ће се извршити сваког понедељка у 19 часова.

*/10 * * * * /scripts/job.sh

5. Планирајте извршавање црон-а на сваких 15 минута.

* * * feb,jun,oct * /script/job.sh

6. Закажите црон који ће се извршити у одабраним месецима

25 7 4 3 * /home/script/backup.sh

7. Покрените схелл скрипту /хоме/сцрипт/бацкуп.сх 4. марта у 7:25

8. Закажите црон да се изврши сваких 30 секунди

  • Пошто немамо контролу над секундама у Цронтаб-у, али то можемо постићи кроз процес у два корака испод.
* * * * * /home/scripts/script.sh
  • Хајде да прво закажемо задатак који се извршава сваког минута.
* * * * * sleep 30; /home/scripts/script.sh

Сада користимо команду за спавање да паузирамо извршење на 30 секунди.

  Можете ли заиста да „зумирате и побољшате” безбедносни снимак?

Горњи задатак ће зауставити извршење на 30 секунди и поново ће се наставити.

Тип Црон конфигурационих датотека

Постоје две врсте Црон конфигурационих датотека:

УНИКС/Линук систем Цронтаб

Ово захтева роот привилегију јер се обично користи за системске услуге и критичне послове. Шесто поље (у горњем опису синтаксе) је име корисника под којим ће се наредба покренути. Он даје могућност системском цронтаб-у да покреће команде као било који корисник.

Корисник Цронтаб

Корисник такође може да инсталира сопствене црон послове користећи команду цронтаб. Такође, шесто поље (у горњем опису синтаксе) је команда за покретање, а све команде се покрећу као корисник који је креирао цронтаб. Сваки корисник може имати сопствену цронтаб датотеку, и иако су то датотеке у /вар/споол/црон/цронтабс, оне нису намењене за директно уређивање. Морамо да користимо цронтаб команду за уређивање или подешавање сопствених црон послова.

Како то функционише? Црон сервис (даемон) ради у позадини и стално проверава (сваког минута) /етц/цронтаб фајл и /етц/црон.*/ директоријуме. Такође проверава директоријум /вар/споол/црон/. Команде извршавају црон

када се поља за минут, сат и месец подударају са тренутним временом, а најмање једно од дводневних поља (дан у месецу или дан у недељи) одговара актуелном дану.

Основне команде

Навођење постојећих Црон послова

crontab -l

Можемо да наведемо све Црон послове без отварања конфигурационе датотеке цронтаб користећи команду испод

[[email protected] ~]# crontab -l
no crontab for techblog.co.rs
[[email protected] ~]#

Ако не постоји постојећи посао, вратиће излаз као

[[email protected] ~]# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
0 */1 * * * /home/account/scripts/updateAccountStatuses.sh
0 */1 * * * /home/account/scripts/reActivateAccountStatus.sh
[[email protected] ~]#

Ако је корисник већ додао неке од послова, приказаће се на следећи начин.

Црон табела је специфична за корисника, што значи да морате бити пријављени са одређеним корисником да бисте видели листу црон табела.

Листа Црон за одређеног корисника

Да бисте навели заказане послове другог корисника, користите опцију као -у (Корисник) и -л (Листа).

цронтаб -у друго_корисничко име -л

Пример: цронтаб -у вдзвдз -л

Додај/измени Цронтаб уносе

  Испробајте МинИО – С3-компатибилно складиште објеката високих перформанси које се самостално хостује

Да бисмо уредили унос цронтаб-а, можемо користити опцију -е као што је приказано испод.

цронтаб -е

Горња команда ће отворити ви едиторе у којима наведете детаље посла и сачувате датотеку. Када сачувате, можете да проверите да ли је црон конфигурисан или не помоћу цронтаб -л.

Додајте/измените Цронтаб уносе за одређеног корисника

crontab -u another_username -e

Можемо да уредимо цронтаб за другог корисника помоћу наредбе испод

Пример: цронтаб -у вдзвдз -е

Уклони Цронтаб унос

Користите параметар <стронг>-р са Цронтаб-ом да бисте уклонили комплетне заказане послове без потврде из цронтаб-а

цронтаб -р

crontab -i -r
[[email protected] ~]# crontab -i -r
crontab: really delete techblog.co.rs's crontab?

Ако желите потврду пре брисања заказаних послова, користите опцију <стронг>-и са -р, која ће затражити потврду од корисника пре него што избришете корисников цронтаб.

Цронтаб специјални стринг

Осим горње синтаксе о којој смо разговарали, можемо користити и осам специјалних стрингова које обезбеђује Цронтаб. Не само да ће нам уштедети време, већ ће и побољшати читљивост.
Специал Стринг
Опис
@рестарт
Покрените једном, након покретања.
@годишње
Покрени једном годишње, тј. 0 0 1 1 *
@сваке године
Исто као @годишње
@монтхли
Покрени једном месечно, тј. 0 0 1 * *
@веекли
Покрени једном недељно, тј. 0 0 * * 0
@даили
Покрени једном дневно, тј. 0 0 * * *
@поноћ
Исто као @даили
@По сату

Покрени једном на сат, тј. 0 * * * *

Цронтаб примери специјалних стрингова

1. Цронтаб за планирање задатака на годишњем нивоу

@годишње /сцриптс/греетинг.сх

Можемо извршити изнад једног за слање новогодишње честитке, Извршиће се у првом минуту сваке године.

2. Цронтаб за планирање задатака за извршење на месечном нивоу.

@монтхли /сцриптс/цлеануп.сх

Можемо извршити горе наведено да бисмо обавили неке активности чишћења почетком сваког месеца.

Слично томе, можемо користити друге посебне стрингове Цронтаб-а за недељне, дневне и сатне сврхе.

Црон Дирецтори

  • Администратор система може да користи црон распоред за читав систем који долази у унапред дефинисаном црон директоријуму као што је приказано испод
  • /етц/црон.д
  • /етц/црон.даили
  • /етц/црон.хоурли
  • /етц/црон.монтхли

/етц/црон.веекли

Цронтаб примери у реалном времену

Хајде да размотримо неке од примера у реалном времену које обично користе системски администратор или ИТ професионалци.

Избришите празне датотеке и директоријум

45 0 * * * вдзвдз финд /тмп -типе ф -емпти -делете

Изнад црон израза ће пронаћи празне датотеке и директоријум из /тмп директоријума и обрисати их. Овај посао ће се обављати свакодневно у 12.45 часова. Потребно је да поменемо корисничко име да бисмо обавили овај посао. У горњем примеру, вдзвдз корисник изводи операцију црон посла.

Извршите више задатака користећи један црон

* * * * * /хоме/сцриптс/бацкуп.сх; /хоме/сцриптс/сцритп.сх

Више задатака/послова се може одвојити помоћу тачке и зареза(;) и може се доделити једном црон изразу.

Алати за Црон форматирање и тестирање

До сада смо разговарали о командама и синтакси цронтаб-а за планирање задатка. Али шта ако нисте системски администратор и ваш посао није да редовно подешавате Црон, можда неће бити могуће запамтити синтаксу и то отвара простор за грешке. Не брините, имамо решење за овај проблем.

Постоји неколико Црон алата за форматирање доступних на мрежи.

# 1. Црон Јоб Генератор Црон Јоб Генератор

је врло једноставан ГУИ где можете одредити минут, дане и путању скрипте за генерисање цронтаб-а.

Узмимо пример у реалном времену где морам да извршим /хоме/процессМонитор.сх на сваких 5 минута од понедељка до петка.

Дакле, добио сам доњу Црон синтаксу коју могу да ставим у свој цронтаб извршавањем
цронтаб –е

0,5,10,15,20,25,30,35,40,45,50,55 * * * 1-5 /хоме/процессМонитор.сх

# 2. Еасицрон Еасицрон

је користан планер послова црон заснован на вебу. Можемо да креирамо црон посао тако што ћемо навести УРЛ за позивање, можемо подесити време када треба да се изврши. Такође можемо навести црон израз или га додати ручно из описног облика. Важно је да опционо можемо да користимо основну ХТТП аутентификацију за мали ниво безбедности.

Не само ово, већ се Еасицрон може користити и за постизање других сврха као што су стандардни Црон израз, евиденције извршења Црон задатака, обавештења е-поштом, одвојене евиденције грешака, итд.

# 3. Цронтаб Генератор Цронтаб Генератор

је још један згодан алат за генерисање цронтаб-а и са овим алатом, такође можете додати ако желите да сачувате црон излаз у датотеку или га пошаљете на е-пошту.

# 4. Цронтаб Гуру Цронтаб Гуру

је једноставан уређивач израза распореда црон на мрежи. Поред тога, пружа корисно средство за праћење вашег цроњоб-а. Све што треба да урадимо је да копирамо дату команду и додамо је на крај цронтаб дефиниције. У случају да црон посао не успе или се чак не покрене, добићете е-поруку са упозорењем.

У примеру у наставку, посао ће се извршавати у 04:05, сваког дана, сваког месеца и сваке недеље.

# 5. ЦРОН тестер ЦРОН Тестер

омогућава нам да тестирамо црон дефиниције времена/датума. Може доћи до ситуације у којој морамо да декодирамо постојећу црон синтаксу за решавање проблема или само желимо да урадимо тест.

Да бисмо то урадили, можемо користити овај алат. Све што треба да урадимо је да копирамо и налепимо наш црон израз у поље за црон дефиницију, затим да изаберемо број итерација и кликнемо на Тест да видимо различите датуме на које ће се покренути.

Хајде да проверимо један од наших црон израза 4 3 */2 * *који би требало да се покреће у 03:04(ам) свака два дана. Хајде да то проверимо са црон тестером.

Закључак Надам се да ће вам горе наведено помоћи да боље разумете Цронтаб и да подесите црон послове. Планирање послова преко Црон-а је један од многих задатака које обавља Линук администратор. Ако сте заинтересовани да научите напредне вештине, погледајте овонаравно

.