Како распоредити задатке у Линук -у помоћу Црона и Цронтаба

Како распоредити задатке у Линук -у помоћу Црона и Цронтаба

Да ли сте знали да Бладе Руннер је постављено у 2019? То је за три године од сада! Да не спомињем Повратак у будућност 2 , где путују кроз време у 2015. Ипак, ми немамо летеће аутомобиле и међу нама нема репликаната (колико ја знам).





Лако је осећати разочарање тренутном технологијом када је упоредимо са измишљеним приказима будућности. Ипак, ових дана наши телефони, рачунари, па чак и куће могу учинити невероватне ствари. Способност аутоматизације задатака једна је од њих.





Сваки корисник Линука може имати користи од планирања задатака, било да се ради о систему (попут чишћења старих дневника и ажурирање пакета ) или услуживање корисника (провера е -поште, преузимање подцаста ...). Корисници оперативног система Виндовс имају Таск Сцхедулер још од оперативног система Виндовс 95. Помоћни програм који ради исти посао на Линук -у зове се црон, а овде ћемо објаснити како га користити.



како преузети музику са гоогле плаи -а на мп3 плејер

Шта је Црон?

Црон је системска услуга која ради у позадини, проверава заказане задатке и извршава их ако их пронађе. Задаци - који се називају и „црон послови“ - дефинисани су у посебним конфигурационим датотекама (цронтабс), које црон скенира сваког минута. Неколико верзија црона може се наћи на различитим дистрибуцијама Линука. На пример, Федорина виљушка црон -а се зове цроние , а постоје и фцрон , бцрон , и дцрон . Неки имају додатне функције, док су други више фокусирани на безбедност, али сви се заснивају на истој идеји.

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



Шта је Цронтаб?

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

У ствари, неколико цронтаба је на вашем систему. Сваки корисник има свој цронтаб, укључујући роот (администратор). Корисничке цронтабе су ускладиштене у





/var/spool/cron/crontabs/

. Тхе

crontab -l

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





sudo crontab -l

.

Осим тога, постоји системска датотека цронтаб

/etc/crontab

који се користи за системске задатке. Обично су у облику извршних скрипти у власништву роот-а смештених у

/etc/cron.hourly/

,

/etc/cron.daily/

,

/etc/cron.weekly/

, и

/etc/cron.monthly/

фасцикле, а на неким дистрибуцијама и

/etc/cron.d/

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

Како заказати задатке помоћу Црона

Звучи једноставно: да бисте заказали задатке, само их додајте у цронтаб. Будући да је цронтаб посебна конфигурацијска датотека, не препоручује се његово ручно уређивање. Уместо тога, користите

crontab -e

команда. Да бисте уредили роот или цронтабс других корисника, покрените команду са администраторским привилегијама и додајте њихово корисничко име након опције -у:

sudo crontab -u root -e
sudo crontab -u username -e

Датотека цронтаб има два одељка. Прва садржи променљиве окружења које се постављају аутоматски. Можете безбедно променити променљиве ПАТХ, ХОМЕ и СХЕЛЛ и променити променљиву МАИЛ.

Други део датотеке је стварни „распоред“ са вашим заказаним задацима. Сваки задатак заузима ред (ред) у табели, са колонама које представљају следеће вредности:

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

  • Бројеви треба да буду цели бројеви (цели бројеви), а звездицу (*) можете користити у било којој колони као заменик, што значи „сваки минут/дан/месец ...“.
  • У колони „Дан у месецу“ пазите да не поставите датум који се не појављује у месецу наведеном у колони „Месец“ (на пример, 30. фебруар).
  • Колоне „Месец“ и „Дан у недељи“ прихватају кратка имена за месеце и дане, и не разликују велика и мала слова.
  • У колони „Дан у недељи“ и 0 и 7 означавају недељу. Колона „Сат“ захтева формат „војно време“ (24 сата), али не можете да користите број 24-уместо тога 0 означава 12 сати То је зато што вредности за минут, сат и дан у недељи почињу на 0 уместо 1.
  • Секунде нису подржане, па не можете заказати задатак у одређеној секунди.

Оно што можете да урадите је да зацртате свеобухватне временске опсеге помоћу цртице (14-22 под „Сати“ ће непрекидно извршавати задатак од 14 до 22 сата) или да покренете један задатак неколико пута дефинисањем листе раздвојене зарезима (1, 3,5 у оквиру „Дана у недељи“ извршаваће задатак у понедељак, среду и петак).

У међувремену, вредности корака су представљене косом цртом (/), и оне указују на количину прескакања унутар опсега; на пример, 3-20/3 под „Сати“ ће извршавати задатак свака три сата од 3 до 20 сати. Ово је корисно када желите да понављате задатке сваких Кс сати, јер можете комбиновати звездицу и корак (*/Кс). Можете комбиновати опсеге са листама и кораке са опсезима све док користите бројеве. Другим речима, комбинације попут „јан-мар“ или „уто, пет-нед“ нису дозвољене.

Алтернативно, уместо постављања вредности за сваку колону, можете само да напишете @недељно, @годишње, @месечно, @дневно или @на сат на почетку реда, након чега следи команда. Овако заказани, задаци ће се изводити у првој могућој инстанци, па би се @веекли извршавао у поноћ првог дана у недељи. Ако желите да покренете задатак одмах када се систем поново покрене, користите команду @ребоот.

У овом примеру, заказали смо резервну копију сваки дан у 08:20 и 20:20. Тапет се аутоматски мења свака три дана у 19:00, а скрипта ће проверавати нове подкасте сваког понедељка у 10:20 и 20:20. Подсетник за рођендан је подешен за 25. март и покреће се сваких 30 минута у наведеном временском оквиру. Коначно, скрипта проверава е -пошту сваких 15 минута од 8 до 20, али само радним данима. Можете слободно да организујете свој цронтаб са размацима и табулаторима између колона, али не унутар њих (не стављајте размаке између зареза, цртица и косих црта).

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

Како проверити да ли су Црон послови извршени

Црон би требао тихо радити у позадини и омогућити вам несметан рад док се брине о вашим задацима. Али како можете бити сигурни да то заиста функционише?

Црон има уграђену функцију обавештавања путем е-поште, али за то је потребно поставити барем једноставан локални сервер поште. Нема много кућних корисника који су спремни да ово конфигуришу, а и не много дистрибуција то подразумевано пружа (на пример, Убунту не). Најбржи начин провере на црону је скенирање системског дневника помоћу ове команде:

cat /var/log/syslog | grep -i cron

Опција -и чини наш упит неосетљивим на велика и мала слова. Могуће је да црон има своју датотеку дневника негде у

/var/log/

, па погледајте тамо ако ова команда не даје корисне резултате.

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

30 * * * * /usr/bin/yourcommand > /home/username/logfile.txt

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

Шта ако Црон не ради?

Може се десити да сте додали неке задатке, проверили системске дневнике и открили да се не извршавају како би требало. Ево неких ствари о којима треба да размислите - и будите опрезни - када покушавате да решите проблем.

Да ли је црон сервис покренут?

Као што знате, црон демон би требао радити у позадини. Уверите се да је то заиста тако. Услуга се назива или цронд или само црон.

За дистрибуције које користе системд:

systemctl status cron

За дистрибуције које користе Упстарт:

service cron status

Ако ваша дистрибуција користи 'стари' Систем В инит приступ, наведите све услуге са:

спољни чврсти диск је откривен, али се не отвара
initctl list

и погледајте да ли је црон наведен.

Да ли вам је уопште дозвољено да имате датотеку цронтаб?

Проверите ваш

/etc

фолдер за датотеке са именом

cron.allow

и

cron.deny

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

како поправити бежичну мрежну везу нема важећу ИП конфигурацију
cron.allow

датотеку, мора садржавати ваше корисничко име. Насупрот томе, ако је

cron.deny

датотека постоји, ваше корисничко име не би требало да буде у њој. Напуштајући

cron.deny

празна датотека значи да само роот и корисници наведени у

cron.allow

може имати датотеке цронтаб.

Да ли су ваше променљиве правилно подешене?

Цронтаб аутоматски поставља променљиву СХЕЛЛ на

/bin/sh

. Међутим, ако ваша шкољка по избору је риба или басх, требало би да промените променљиву СХЕЛЛ

. Слично, променљива ПАТХ подразумевано садржи само неколико директоријума. Овде цронтаб тражи Линук команде. Ако се ваш црон посао не може покренути, то може бити зато што цронтаб не 'види' наредбу коју сте користили. Да бисте то избегли, додајте директоријуме који садрже команде у променљиву ПАТХ, одвојене двотачкама:

ПАТХ =/опт/миапп/бин:/уср/лоцал/сбин:/уср/лоцал/бин:/уср/сбин:/уср/бин:/сбин:/бин

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

Да ли је ваше форматирање цронтаба тачно?

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

  • додајте празан ред на крај датотеке цронтаб
  • избегните знак % обрнутом косом цртом ако ваша команда то укључује
  • пишите коментаре као засебне редове који почињу са #. Не пишите коментаре у исти ред са променљивим окружења или поред наредби црон јоб.

Да ли заиста морате да користите терминал?

Апсолутно не. Корисници КДЕ -а могу заказати црон послове помоћу КЦрон -а, којем је доступан из Системске поставке> Планер задатака модул. Са једноставним интерфејсом који вам омогућава да изаберете и подесите све у само неколико кликова мишем, КЦрон је задовољство користити.

Ако више волите ГНОМЕ, онда ГНОМЕ Распоред је за тебе. Приступ је сличан, иако је интерфејс, очекивано, мало другачији. Нуди напредни режим за ситне измене и долази са апликацијом на панелу из које можете директно управљати задацима.

Требали бисте бити свјесни других рјешења, попут Цронтаб-УИ и Миницрон . Погоднији су за кориснике који управљају са више машина и обављају црон послове, а једна од њихових најхладнијих функција је интерфејс заснован на вебу.

Постоје ли Црон алтернативе?

Иако је црон прилично стандардан распоређивач задатака за Линук, сигурно није једини. Тхе по команди Савршен је за брзе, једнократне послове који се могу заказати директно из командне линије, без посебних конфигурацијских датотека. Ако вам треба више, постоји ГНУбатцх , који уводи појам зависности. Помоћу ГНУбатцх -а можете поставити посебне услове за сваки посао или подесити да заказани задатак зависи од претходног. Нешто слично се може постићи и са системски тајмери . Иако мање практично за конфигурисање од црона, системски тајмери ​​могу запамтити да ли је задатак пропустио распоред док је рачунар био искључен, и покренути га следећи пут када је укључен.

Ово је нешто што црон не може учинити сам. Као такав, погодан је за сервере и рачунаре који стално раде, али неће извршити посао који је заказан док је рачунар био искључен. Ово је место где анацрон долази у игру. Технички то није „алтернатива“ или замена за црон. Уместо тога, анацрон допуњује црон и требало би га користити упоредо са њим, што је случај у многим дистрибуцијама Линука, укључујући Убунту и Убунту-базиране производе. Анацрон евидентира када је задатак последњи пут извршен и проверава да ли је било пропуштених инстанци док је систем био искључен. Покренуће их када поново укључите рачунар, али сваки задатак се може извршити само једном дневно.

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

Ста је са тобом? Како организујете своје дигиталне задатке? Које задатке планирате на Линук -у? Поделите своје приче и савете за коришћење црона у коментарима.

Кредит за слику: табла распореда од Гонзала Арагона преко Схуттерстоцка

Објави Објави Твеет Емаил 12 видео сајтова који су бољи од ИоуТубе -а

Ево неколико алтернативних видео сајтова за ИоуТубе. Сваки од њих заузима различиту нишу, али вреди га додати у обележиваче.

Прочитајте следеће
Повезане теме
  • Линук
  • Линук
О аутору Ивана Исадора Девчић(24 објављена чланка)

Ивана Исадора је слободни писац и преводилац, љубитељ Линука и КДЕ девојка. Она подржава и промовише бесплатни софтвер отвореног кода и увек тражи свеже, иновативне апликације. Сазнајте како да ступите у контакт овде .

Више од Иване Исадоре Девчић

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили