Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Si të vendosni kohën në cron. Çfarë është Cron? Disa shembuj të dobishëm për krijimin e detyrave që përsëriten shpesh

Si të vendosni kohën në cron. Çfarë është Cron? Disa shembuj të dobishëm për krijimin e detyrave që përsëriten shpesh

Cron (kurora), Crontab (crontab), Menaxher detyrë- këta emra janë dëgjuar nga të gjithë ata që lidhen me "ndërtimin e faqeve në internet" më shumë se një herë. Pra, çfarë është Cron? Si të punoni me të? Pse nevojitet Cron dhe si ta konfiguroni saktë? Të gjitha këto pyetje do t'i analizojmë sot.

Gjëja e parë që dua të shënoj menjëherë: Cron, Crontab, Menaxher detyrë- është njësoj, mos u turpëroni nga shumëllojshmëria e emrave.

Në praktikën e çdo webmaster, do të ketë gjithmonë nevojë për të kryer disa detyra sipas një orari. ato. Thjesht shkruani komandën që ju nevojitet për të kryer disa detyra kohë të dhënë, dhe kjo eshte. Atëherë gjithçka ndodh pa pjesëmarrjen tuaj - automatikisht, dhe ajo që është më e këndshme në kohën e duhur për ju.

Për shembull, ju duhet të dërgoni periodikisht njoftime te partnerët në e-mail. Ose dëshironi të konfiguroni përshëndetjet ose përkujtuesit automatikë. Ose keni një drejtori të sajteve dhe dëshironi që skripti i drejtorisë të kontrollohet backlinks etj. Të gjitha këto detyra mund të automatizohen lehtësisht duke ia besuar këtë Cron ose, siç thonë ata - Programuesi i detyrave. Dhe ka skenare në të cilat për funksionimin normal Cron është thelbësor.

Pothuajse të gjitha hostet moderne ofrojnë një funksion të gatshëm Programuesi i detyrave. Nëse nuk ka një funksion të tillë në Hosting, atëherë është më mirë të mos kontaktoni një kompani të tillë pritëse. Cron nuk është më një luks këto ditë dhe nëse Hosting nuk ofron një programues detyrash në paketën e shërbimit, është më mirë të kërkoni një kompani tjetër, ndoshta nuk do të ketë funksione të tjera të rëndësishme.

Pra, le të hedhim një vështrim në gjithçka veprime praktike në cilësimet e Cron në shembullin e cPane l ruse (paneli i kontrollit të faqes) Kompania pritëse Hudson. Pse pikërisht Hudson? Është e thjeshtë - faqja ime jeton këtu dhe më pëlqen shumë ky Hosting: paketë e plotë të gjitha shërbimet më të mundshme me një çmim shumë të arsyeshëm.

Edhe pse vendosja Programuesi i detyrave ndodh në të njëjtën mënyrë kudo.

Shkoni te paneli i kontrollit të faqes tuaj këtë rast ky është cPanel (ka të tjerë). Qasja ju jepet menjëherë pas blerjes hosting, shkoni poshtë dhe gjeni këtë seksion, Mjete shtesë:

Ne gjejmë në këtë seksion Menaxher detyrë dhe klikoni mbi të. Ndonjëherë kjo meny quhet Cron Panel. Ja si karakterizohet Cron:

"Task Scheduler ju lejon të ekzekutoni komandat koha e caktuar pa pjesëmarrjen tuaj. Kjo ju lejon të automatizoni detyrat e përsëritura. Planifikuesi i detyrave është shumë i konfigurueshëm dhe ju lejon të automatizoni ekzekutimin e çdo komande që dëshironi të ekzekutoni. Për shembull, mund t'i thuash planifikuesit të fshijë skedarë të përkohshëmçdo javë në mënyrë që të mos zënë shumë hapësirë ​​në makinën tuaj."

Ekzistojnë dy mundësi për menaxhimin e Cron:

Standard dhe E avancuar (stili Unix) Le të hedhim një vështrim në secilën prej tyre.

Opsioni i parë. Klikoni në butonin Standard, hapet dritarja e konfigurimit të detyrës:

Siç mund ta shihni, gjithçka është shumë e thjeshtë këtu. Thjesht duhet të vendosni kohën e ekzekutimit të komandës, duke treguar për këtë në fushat përkatëse kur do të nisë komanda, në cilën orë: minuta, Ora, ditë, Muaj, Ditë të javës. Dhe sigurisht, shkruani vetë komandën e nisjes në fushë: komanda për të ekzekutuar.

Vlerat mund të shkruhen ose me dorë (në fushën e majtë), ose të përdorin listën rënëse (shigjetat në të djathtë).

Le të shohim se çfarë kemi shkruar këtu. Dhe ne shkruam detyrën e mëposhtme: ekzekutoni komandën për ekzekutim:
/usr/bin/php /home/freeman/domains/public_html/cron/new_day.php
çdo 30 minuta, çdo 6 orë, çdo ditë të muajit janar nëse bie të hënën.

Pas vendosjes së punës, klikoni butonin Add New Cron Job.

Nuk është e qartë se çfarë kanë shkruar? :) Le të shohim opsionin e dytë, dhe pastaj do të shpjegoj më në detaje. Kthehemi në faqen e mëparshme.

Opsioni i dytë. Ne klikojmë në butonin E avancuar (stili Unix), hapet dritarja e konfigurimit të detyrës:

Më pëlqen më shumë ky opsion për vendosjen e detyrës Kron. Dhe megjithëse quhet i avancuar, për mendimin tim është më i thjeshtë dhe më i përshtatshëm.

Këtu, si në rastin e parë, duhet të specifikoni se kur do të nisë komanda, ne gjithashtu tregojmë: minuta s, Ora s, ditë, Muaj, Ditë të javës dhe vetë detyrën për ekzekutim në terren Komanda. Pas kësaj, klikoni butonin Shto Cronjob. Detyra është vendosur. Faqja është përditësuar:

Dhe mund të shtoni një detyrë të re duke përsëritur përsëri të gjithë procedurën. Ju mund të fshini një detyrë duke klikuar në kryqin pranë detyrës në të djathtë.

Ka edhe një jo parametri i kërkuar, por unë rekomandoj ta shkruani: këtë adresën e emailit. Në këtë adresë do të dërgohet një raport mbi ekzekutimin e komandës. Fusha është fakultative, por është më mirë të vendosni adresën në mënyrë që të jeni të vetëdijshëm për çështjen, nëse diçka shkon keq, Cron do t'ju informojë për këtë me një letër, dhe nëse letra është bosh, atëherë gjithçka është në rregull!

Çfarë kemi shkruar këtu? Ekzekutoni komandën në 11 minuta, çdo orë të dytë, çdo ditë, çdo muaj, ditët 1, 3, 5, 7 të javës.

Në fushën e përzgjedhjes: minuta specifikoni minutën (ose minutat) në të cilën detyra do të nisë në terren Ora specifikoni orën (ose orët) në të cilat (at) do të kryhet detyra, si dhe ditën (at) dhe muajin (të), në secilën fushë mund të specifikoni si kohën e saktë kështu është edhe intervali.

Për shembull, mund të specifikoni jo vetëm 11 minuta, por 11-15 (interval), që do të thotë se detyra do të kryhet çdo 11, 12, 13, 14, 15 minuta. Ose specifikoni minuta specifike, për shembull: 11, 14, 18 - kjo do të thotë që detyra do të funksionojë në 11, 14 dhe 18 minuta. Ju gjithashtu mund të përdorni shenjën * (yll)- qëndron për secilin. Nëse vihet * (yll) në fushën Minutes, atëherë, në përputhje me rrethanat, detyra do të nisë çdo minutë, d.m.th. 60 herë në orë.

Në secilën fushë, mund të specifikoni një kohë specifike dhe një interval, si dhe të përdorni yjet.

Regjistrimi */2 qëndron për: çdo 2 orë. Të gjitha këto ndryshime rekord vlejnë për të gjitha fushat ( minuta s, Ora s, ditë, Muaj, Ditë të javës) kur i specifikoni detyrën Kron. Ju e kuptoni se mund të ketë miliona opsione, ekzekutoni detyrën për ekzekutim, të paktën çdo minutë gjatë gjithë vitit. Sigurisht, një nevojë e tillë pothuajse nuk lind kurrë, por teorikisht një mundësi e tillë ekziston.

Dhe mbani në mend disa Hosting vendosin kufizime në nisjen e Cron, për shembull, jo më shumë se 3 - 10 herë në orë. Pse? Ka një ngarkesë mjaft të konsiderueshme në server. Shkelja mund të rezultojë në pezullimin e llogarisë suaj.

Tani le të shohim se si është mbushur fusha komanda për të ekzekutuar(në variantin e parë) ose Skuadra (në variantin e dytë).

Detyra është vendosur si më poshtë.

Para së gjithash, ju specifikoni shtegun për në PHP në serverin tuaj, në serverin tim shtegu është /usr/bin/php, mund të keni një rrugë tjetër, kontrolloni me administratorët e serverit tuaj, pas shtegut për në PHP vendosni një hapësirë ​​dhe shkruani rrugën e plotë të brendshme të skedarit që duhet të ekzekutojë Cron. Supozoni se më duhet Cron për të ekzekutuar skedarin mail.php, duke ditur shtegun e brendshëm të skedarit, shkruaj sa vijon:

public_html/cron/mail.php

ato. në dosjen rrënjë publike_html, ekziston një dosje cron në të cilën ndodhet skedari mail.php dhe komanda e plotë për të ekzekutuar skedarin mail.php do të duket si kjo:

/usr/bin/php /public_html/cron/mail.php

Në pritje të ndryshme, rruga drejt PHP mund të jetë e ndryshme dhe e shkruar ndryshe, Dosja rrënjë Vendndodhja e sitit nuk është gjithashtu gjithmonë rasti public_html kështu që nëse jo rast studimi të dhënat e detyrës Kron, është më mirë të pyesni administratorin për të, duke përshkruar atë që dëshironi të merrni në fund. Mirë

Në Unix, është e mundur të ekzekutohen programet e përdoruesve në kohën e specifikuar nga përdoruesi. Për këtë përdoret programi cron, i cili merr udhëzime nga përdoruesit dhe, duke ndjekur ato, kryen ekzekutimin e çdo detyre sipas skripteve të marra. Klientët tanë mund ta përdorin këtë veçori për të kryer detyra periodike.

Si të vendosni cron në llogarinë personale (për tarifat unix)

Meqenëse jo të gjitha programet PHP mund të ekzekutohen përmes CLI SAPI pa modifikim paraprak, është e mundur që ato të ekzekutohen përmes wget. Për shembull:

/usr/local/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Nëse skripti përdor funksione kërkojnë, përfshijnë, dhe ato përmbajnë shtigje relative, pastaj në fillim të skriptit që po ekzekutohet, përdorni thirrjen e funksionit chdir (), i cili do të vendosë direktorinë aktuale të punës.

Si të merrni mesazhe gabimi nga programet e drejtuara nga cron

Nëse hasni gabime gjatë ekzekutimit të një programi që ekzekutohet nga cron, ndoshta do të dëshironi të merrni mesazhe gabimi në mënyrë që të kontrolloni plotësisht funksionimin e punëve të ekzekutuara periodikisht. Për ta bërë këtë, vendosni rreshtin e mëposhtëm në fillim të skriptit cron:

[email protected]

Sigurisht, [email protected] duhet të zëvendësohet me një adresë e-mail të jetës reale ku do të duhet të dërgohen njoftimet. Nëse keni nevojë të merrni mesazhe gabimi në adresa të shumta, specifikoni të gjitha këto adresa të ndara me presje.

Ju lutemi vini re se cron do të dërgojë me postë atë që nxjerrin skriptet e ekzekutimit. Për shembull, nëse shkruani një skript që printon rreshtin "Përshëndetje, botë" dhe e vendosni në ekzekutim nëpërmjet cron, do të merrni një email me rreshtin "Përshëndetje, botë" sa herë që cron ekzekuton një skenar të tillë.

Për të shmangur këtë, për shembull, kur nuk keni nevojë për daljen e tekstit nga skripti, duhet të shtoni karaktere në fund të vargut të skriptit për cron

> /dev/null 2>&1

Linja e plotë për cron do të duket si kjo:

0 1 * * * /usr/local/bin/php -q $HOME/script.php > /dev/null 2>&1

Ne ju rekomandojmë të kontrolloni sintaksën e saktë të skripteve që keni vendosur të ekzekutohen përmes cron. Skriptet mund të përmbajnë një gabim, mund të mos funksionojnë në të njëjtën mënyrë kur ekzekutohen përmes një serveri në internet dhe përmes cron, e kështu me radhë. Për t'u siguruar që skripti do të funksionojë saktë përmes cron, së pari kontrolloni atë me komandën e mëposhtme në guaskë unix:

/usr/local/bin/php -l script.php

Nëse nuk ka gabime në skript, do të shihni mesazhin "Nuk janë zbuluar gabime sintaksore në script.php".

Kufizimet

Programet e ekzekutuara nëpërmjet cron janë subjekt i të njëjtave kufizime burimesh si proceset e drejtuara nga një përdorues në një guaskë unix. Është rreth në lidhje me kufizimet në kohën e ekzekutimit të programit, numrin memorie në dispozicion, kufijtë e madhësisë së skedarit, etj.

Shumë shpesh, në sistemet e ngjashme me Linux-in, mund të jetë e nevojshme të automatizohen disa procese rutinë. Për këtë, përdoren planifikues të veçantë. Një nga më të famshmit prej tyre është Cron, cilësimet e të cilit do të diskutohen në këtë artikull.

Çfarë është Cron?

Emri i programit rrjedh nga greqishtja "chronos", që do të thotë kohë. E cila në fakt është logjike. Detyra e demonit është të ekzekutojë komandat e shkruara në të në momente të caktuara. Vetë procesi i zbatimit bazohet në kontrollimin e tabelave të cron dhe krahasimin e tyre me kohën dhe kohën.

skedar crontab

Elementi më i rëndësishëm i konfigurimit të Cron është skedari i konfigurimit krontab. Ai përmban komandat e ekzekutimit dhe shtigjet drejt skripteve. Të gjithë funksionojnë si superpërdorues. Meqenëse ato janë të vendosura në drejtorinë /etc/cron.d, këta skedarë duhet të konfigurohen atje.

Çdo përdorues individual i sistemit ka skedarin e tij crontab.

Shpërndarje të ndryshme Linux përdorin drejtori të ndryshme ruajtjeje cilësimet e përdoruesit. Për RedHat, kjo është var / bobina/cron. Në Debian dhe Ubuntu kjo do të jetë var/spool/cron/crontabs. Dhe var/spool/cron/tabs në SUSE.

Lista e komandave për menaxhimin e crontab

Cron ka një sërë direktivash speciale që mund të përdoren për të kontrolluar planifikuesin. Ju duhet t'i përdorni ato në lidhje me crontab. Këtu është një listë e shkurtër:

  • -u emri i përdoruesit. Përcakton përdoruesin detyrat dhe cilësimet e të cilit do të përpunohen veprime të mëtejshme. Nëse e lëshoni çelësi i dhënë, atëherë do të vendoset përdoruesi i paracaktuar.
  • -l. Shfaq listën aktuale të detyrave.
  • -e. Nis redaktorin për planifikuesin e detyrave.
  • -r. Heq të gjitha detyrat ekzistuese nga lista.

Formati i Detyrës

Siç u përmend më lart, konfigurimi i Cron është të vendosë komanda dosje speciale. Ajo duket si shënim i thjeshtë, i përbërë nga gjashtë kolona:

  • i pari është numri i minutave. Intervali i disponueshëm është nga 0 në 59. Mund të përdoren vlera të shumta, diapazoni dhe Simbole të veçanta;
  • kolona e dytë është orë. Mund të përdoren vlera nga 0 në 23;
  • më tej - ditë. Këtu mund të vendosni një numër nga 1 në 31;
  • muaji i katërt. Vlera minimale është 1, maksimumi është 12;
  • javën e pestë. 0 ose 7 korrespondon me të dielën;
  • komanda e fundit është ajo që ekzekutohet.

Siç u përmend, karakteret speciale, "*" ose "/" mund të specifikohen në skedar. Për shembull, një hyrje e tillë - jehonë 23 */2 *** "Run" do të thotë që çdo orë çift e 23 minuta do të shfaqet mbishkrimi "Run".

Karakteristikat e skedarit crontab

Kur konfiguroni Cron, duhet të mbani mend se ai ka veti specifike që duhet të merren parasysh gjatë konfigurimit:

  • çdo skedar duhet të përfundojë varg bosh, përndryshe artikulli i fundit mund të shpërfillet, dhe ndonjëherë i gjithë skedari;
  • skedarët e vendosur në drejtori me një pikë në emrin e tyre gjithashtu do të injorohen nga planifikuesi;
  • shenjat e paundit "#" mund të përdoren në skedarët e konfigurimit. Ato përdoren për të shënuar rreshta me komente. Kjo është shumë e dobishme për të përshkruar detyrat dhe komandat e planifikuara.

Variabla shtesë

Kur vendosni Cron, mund të përdorni vlera dhe shkurtesa të veçanta në komanda. Për shembull, për të specifikuar ditën e javës, mund të përdorni listën e mëposhtme:

  • diell - e diel
  • e hënë - e hënë
  • e martë - e martë;
  • e mërkurë - e mërkurë;
  • thu - e enjte;
  • e premte - e premte
  • u ul - e shtunë.

Muajt ​​gjithashtu kanë të ndara vlerat e shkronjave- janar, shkurt, mars, prill, maj, qershor, korrik, gusht, shtator, tetor, nëntor, dhjetor.

Ekzistojnë gjithashtu variabla të veçantë për konfigurimin e Cron që mund të zëvendësojnë të gjitha linjat e komandës:

  • @reboot. Komanda do të ekzekutohet sa herë që kompjuteri niset;
  • @vjetor. Kjo detyrë do të funksionojë një herë në vit. Shënimi ekuivalent në formë numerike mund të jetë: 0 0 1 1 *. Sinonimi i tij mund të shkruhet edhe si @annually;
  • @mujore. Siç mund ta merrni me mend nga emri, kjo ndryshore e ekzekuton komandën një herë në muaj. Homologu i tij numerik është 0 0 1 * *;
  • @javore. Ky variabël do të ekzekutohet çdo javë;
  • @ditore. Njehere ne dite;
  • @mesnatë. Nisja do të bëhet në mesnatë;
  • @për orë. Çdo orë.

Konfigurimi i Cron në Centos 7

Procesi i instalimit dhe konfigurimit në vetvete nuk është shumë i ndryshëm nga shpërndarjet e tjera të ngjashme Linux. Përpara se të konfiguroni Cron në Centos, duhet të instaloni paketën cronie në sistem. Këtë mund ta bëni me komandën yum install cronie. Për të krijuar një skedar me udhëzime, duhet të ekzekutoni crontab -e në terminal. Gjithçka cilësimet e sistemit Cron do të ruhet në /var/spool/cron/username.

Disa shembuj të dobishëm për krijimin e detyrave që përsëriten shpesh

Është e mundur të personalizohet Cron në atë mënyrë që të mbulojë pothuajse të gjitha nevojat e çdo përdoruesi.

  • 00 09-17 * * 1 - 5 /rruga/ drejt komandës/kurorës. Kjo komandë do të kryejë automatikisht veprimin e planifikuar çdo ditë pune nga ora 9 e mëngjesit deri në 5 të mëngjesit çdo minutë të parë;
  • 00 9.17 * * * /rruga/ drejt komandës/ cron. Në këtë shembull, komanda ekzekutohet dy herë në ditë. E para në 9, e dyta - në 5:00. Shenja "*" tregon se komanda do të ekzekutohet çdo ditë, muaj dhe vit;
  • Gjithashtu, mos harroni për ndryshoret simbolike. Për shembull, @monthly do ta ekzekutojë detyrën çdo muaj në minutën e parë të orës së parë të ditës së parë. Dhe @daily do të funksionojë çdo ditë.

MIN ORË DOM MON DOW CMD

Tabela: Fushat Crontab dhe vargjet e vlefshme (Sintaksa Crontab Linux)

1. Planifikimi i detyrave për një kohë të caktuar

Baza e përdorimit të cron është ekzekutimi i detyrave në kohë të caktuar siç tregohet më poshtë. Ky do të ekzekutojë një skenar të plotë rezervë më 10 qershor në orën 8:30 të mëngjesit.

Ju lutemi vini re se fusha e orës përdor formatin 24-orësh, pra 8 e mëngjesit është 8, 20 është 20 orë.

30 08 10 06 * / shtëpi / zhvillues / rezervë e plotë

  • Minuta 30-30
  • 08 - 08:00
  • Dita 10-10
  • * - Çdo ditë të javës

2. Programoni detyra për ekzekutim më të shpeshtë (për shembull, dy herë në ditë)

Skripti i mëposhtëm përdor një shtesë rezervë dy herë në ditë çdo ditë. Ky shembull kryen një rezervë shtesë në orën 11:00 dhe 16:00 çdo ditë. Vlerat e ndara me presje në fushë tregojnë se komanda duhet të ekzekutohet në çdo kohë të caktuar.

00 11.16 * * * /home/developer/bin/incremental-backup

00 - Minuta 0 (fillimi i orës) 11, 16 - 11 dhe 16 orë * - çdo ditë * - çdo muaj * - çdo ditë të javës

3. Orari i punës për një periudhë të caktuar kohore (për shembull, vetëm gjatë ditëve të javës)

Nëse dëshironi që nënprogramet të funksionojnë çdo orë në një interval kohor të caktuar, përdorni sa vijon.

Cron rutinë për çdo ditë gjatë orarit të punës

Ky shembull kontrollon statusin e bazës së të dhënave çdo ditë (duke përfshirë fundjavat) gjatë orarit të punës nga ora 9 e mëngjesit deri në 6 pasdite.

00 09-18 * * * /home/developer/bin/check-db-status

00 - Minuta 0 (fillimi i orës) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (orë) * - çdo ditë * - çdo muaj * - çdo ditë të javë

Cron Rutina për çdo ditë pune gjatë orarit të punës

Ky shembull kontrollon statusin e bazës së të dhënave çdo ditë pune (përveç të shtunës dhe të dielës) nga ora 9 e mëngjesit deri në 6 pasdite.

00 09-18 * * 1-5 /home/ramesh/bin/check-db-status

00 - Minuta 0 (fillimi i orës) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (orë) * - çdo ditë * - çdo muaj 1-5 - të hënën, E martë, e mërkurë, e enjte dhe e premte (çdo javë)

4. Si të shikoni hyrjet e Crontab?

Shikoni skedarët aktualë të crontab të përdoruesit.

Për të parë skedarët tuaj crontab -l nga lart llogari unix, bëni sa më poshtë.

[email i mbrojtur]$ crontab -l @vjetor /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Shikoni hyrjet e krontabit rrënjë

Identifikohu si përdorues rrënjë (su - root) dhe ekzekuto crontab -l siç tregohet më poshtë.

[email i mbrojtur]# crontab -l nuk ka crontab për rrënjë

Për të parë skedarët e përdoruesve të tjerë, identifikohuni si rrënjë dhe përdorni -u (emri i përdoruesit) -l siç tregohet më poshtë.

[email i mbrojtur]# crontab -u emri i përdoruesit -l @mujore /home/username/monthly-backup 00 09-18 * * * /home/username/check-db-status

5. Si të redaktoni hyrjet në crontab?

Redaktimi i hyrjeve të cron të përdoruesit aktual.

Për të modifikuar hyrjet, përdorni cronab -e siç tregohet më poshtë. Si parazgjedhje, hyrjet aktuale të crontab-it të përdoruesit do të modifikohen.

[email i mbrojtur]$ crontab -e @vjetore /home/developer/centos/bin/annual-maintenance */10 * * * * /home/developer/debian/bin/check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

Kur ruani skedarin, ai do të ruajë crontab-in dhe do të shfaqë mesazhin e mëposhtëm duke thënë se crontab është modifikuar me sukses.

~ "crontab.XXXXyjWkHw" 2L, 83C crontab i shkruar: instalimi i crontabit të ri

Redaktimi i hyrjeve në rrënjë të crontab

Identifikohu si përdorues rrënjë(su - rrënjë) dhe bëni një crontab -e siç tregohet më poshtë.

[email i mbrojtur]# crontab -e

Redaktimi i hyrjeve në crontab të një përdoruesi tjetër

Për të modifikuar hyrjen në crontab të një tjetri Përdorues Linux, hyni si rrënjë dhe përdorni -u (emri i përdoruesit) -e siç tregohet më poshtë.

[email i mbrojtur]# crontab -u emri i përdoruesit -e @mujore /home/username/fedora/bin/monthly-backup 00 09-18 * * * /home/username/ubuntu/bin/check-db-status ~ ~ ~ "/tmp/crontab .XXXXyjWkHw" 2L, 83C

6. Ekzekutoni Cron çdo minutë

Në mënyrë ideale, mund të mos dëshironi të planifikoni cron për të ekzekutuar çdo minutë. Por të kuptuarit e këtij shembulli do t'ju ndihmojë të kuptoni shembujt e tjerë të përshkruar në këtë artikull.

Bash * * * * * CMD

* - nënkupton një njësi të mundshme - domethënë çdo minutë të çdo ore gjatë vitit. Gjithashtu, përdorimi i drejtpërdrejtë * do të rezultojë të jetë më shumë veçori e dobishme në shembujt e mëposhtëm.

Përcaktimi */5 në fushën e minutave do të thotë çdo 5 minuta. Të specifikosh 0-10/2 në fushën e minutave do të thotë çdo 2 minuta në 10 minutat e para. Kështu, kjo konventë mund të përdoret në të 4 fushat.

7. Kryeni detyrat e Cron në sfond çdo 10 minuta

Përdorni sa vijon nëse dëshironi të kontrolloni hapësirën në disk çdo 10 minuta.

*/10 * * * * /home/ramesh/check-disk-space

Kjo detyrë ekzekuton komandën e specifikuar të diskut të kontrollit çdo 10 minuta për një vit. Megjithatë, mund të dëshironi të kontrolloni vetëm gjatë orarit të punës, ose anasjelltas. Shembujt e mësipërm tregojnë se si ta bëni këtë.

Në vend që të specifikojmë vlerat në 5 fusha, ne mund t'i specifikojmë ato duke përdorur fjalë kyçe siç tregohet më poshtë.

ekzistojnë kushte të veçanta kur në vend të 5 fushave mund të përdorni @ e ndjekur nga një fjalë kyçe - si p.sh. rifresko, mesnatë, vjetore, për orë.

Cron fjalë kyçe të veçanta dhe kuptimi i tyre

8. Orari i punës për minutën e parë të çdo viti duke përdorur @yearly

Nëse dëshironi që detyra cron të funksionojë në minutat e para të çdo viti, mund të përdorni fjalën kyçe @yearly, siç tregohet më poshtë. Në këtë rast, sistemi do të kryejë një vjetor Mirëmbajtja duke përdorur skriptin vjetor të mirëmbajtjes në orën 00:00 të datës 1 janar të çdo viti.

@vjetor /home/developer/red-hat/bin/annual-maintenance

9. Kryeni detyra çdo muaj duke përdorur fjalën kyçe @monthly

Është e ngjashme me @yearly më sipër. Por komanda ekzekutohet çdo muaj. Ekipi do të rezervohet në orën 00:00 të ditës së parë të çdo muaji.

@mujore /home/ramesh/suse/bin/tape-backup

10. Kryeni detyra çdo ditë duke përdorur @daily

Duke përdorur fjalën kyçe @daily, një skedar regjistri i pastrimit të regjistrave do të gjenerohet çdo ditë në orën 00:00 çdo ditë.

@daily /home/developer/arch-linux/bin/cleanup-logs "filloi dita"

11. Si të ekzekutoni një komandë Linux pas çdo rindezjeje duke përdorur @reboot?

Duke përdorur fjalën kyçe @reboot, komanda e specifikuar do të ekzekutohet sa herë që sistemi niset.

@rindez cmd

13. 12. Si të çaktivizoni/ridrejtoni postën dalëse të Crontab duke përdorur fjalën kyçe MAIL?

Si parazgjedhje, crontab dërgon detyra dalëse te përdoruesi që vendos detyrën. Nëse dëshironi t'i ridrejtoni te një përdorues tjetër, shtoni ose përditësoni variablin MAIL në crontab siç tregohet më poshtë.

[email i mbrojtur]$ crontab -l MAIL="zhvilluesi" @vjetor /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Nëse dëshironi të ndaloni fare dërgimin e postës, d.m.th. të ndaloni dërgimin e skedarëve dalës të crontab, shtoni ose përditësoni variablin MAIL në crontab siç tregohet më poshtë.

13. Si të ekzekutoni detyrat e Linux Cron çdo sekondë duke përdorur Crontab

Ju nuk mund të vendosni cron të ekzekutojë çdo sekondë. Sepse njësia minimale e ekzekutimit të cron është një minutë. Në një skenar normal, nuk ka nevojë të ekzekutohet cron çdo sekondë.

14. Specifikimi i variablës PATH në Crontab

Në të gjithë shembujt e mësipërm, ne kemi treguar rrugë absolute Komandat Linux ose skript shell që do të ekzekutohet.

Për shembull, në vend që të specifikoni /home/developer/tape-backup, nëse dëshironi të specifikoni vetëm tape-backup, shtoni /home/developer në variablin PATH në crontab siç tregohet më poshtë.

[email i mbrojtur]$ crontab -l PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/zhvilluesi @yearly-yearly-maintenance */10 * * * * check-disk-space

15. Instaloni Crontab nga skedari Cron

Në vend të redaktimi i drejtpërdrejtë skedari crontab, mund të shtoni të gjitha hyrjet në skedarin cron. Nëse skedari ka këto hyrje, mund t'i ngarkoni ose instaloni në cron siç tregohet më poshtë.

Shënim: Një skedar cron-file.txt do të krijohet në crontab-in tuaj, i cili do të hiqet rekorde të vjetra cron. Prandaj, kini kujdes kur ngarkoni hyrjet e cron nga cron-file.txt:

[email i mbrojtur]$ crontab -l nuk ka crontab për zhvilluesin $ cat cron-file.txt @vitore /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space [email i mbrojtur]$ crontab cron-file.txt [email i mbrojtur]$ crontab -l @vjetor /home/developer/annual-maintenance */10 * * * * /home/developer/check-disk-space

Në sistem linux punët fillojnë automatikisht nga crond daemon dhe planifikohen për fillim Automatik detyrat mund të kryhen jo vetëm nga administratori i sistemit, por edhe nga përdoruesit.

Si funksionon crond

Mënyra se si funksionon crond daemon është e thjeshtë. Pasi të fillojë (zakonisht në nisjen e sistemit), daemon zgjohet çdo minutë dhe kontrollon për të parë nëse ndonjë program është planifikuar për të ekzekutuar atë minutë. Nëse gjenden programe të tilla, daemon i lëshon ato dhe u dërgon mesazhe e-mail përdoruesve të planifikuar për t'u ekzekutuar.

Planifikimi i detyrave

Planifikimi është një detyrë e thjeshtë. Orari vendoset në një skedar të veçantë crontab. Çdo rresht i skedarit përmban një detyrë që duhet të ekzekutohet në një kohë të caktuar.

Formati i hyrjeve në krontab

Pjesa e datës së kohës përbëhet nga pesë fusha numerike, të ndara me hapësira, që specifikojnë se kur do të ekzekutohej puna:

Për lehtësinë e plotësimit të këtyre fushave, janë futur rregullat e mëposhtme:

  • Ju mund të specifikoni vlerat si intervale numerike. Për shembull, intervali 1-3 në fushën e orëve do të thotë 1.00, 2.00 dhe 3.00 mesnatë, 2-4 në fushën e ditës së javës - e martë, e mërkurë ose e enjte.
  • Intervalet mund të vendosen në rritje më të mëdha se një. Për shembull, për të specifikuar çdo orë tjetër duke filluar nga mesnata, do ta vendosni intervalin në 0-23 në hapat nga 2 të ndara me një vijë të pjerrët: 0-23/2
  • Një yll (*) tregon gamën e plotë të vlerave të fushës - nga minimumi në maksimum. Për shembull, në fushën e ditës së muajit, ylli nënkupton intervalin 0-31, në fushën e ditës së javës - 0-7
  • Dita e javës ose e muajit mund të specifikohet me tre shkronjat e para të emrit të saj (anglisht).

Koha-Data Shembuj

Disa shembuj të plotësimit të fushave kohë-datë:

0 1 * * * Vraponi punën çdo ditë në orën 13:00 30 14 * * 0 Vraponi punë të dielave në orën 14:30 0 23-7/2,8 * * * Vraponi punën çdo 2 orë nga ora 23:00 deri në orën 7:00 dhe në orën 8:00 0 12 * 1 muaj vrap puna në mesditë çdo të hënë në janar të çdo viti 0 12 2 shkurt * Kryeni punën në mesditë të datës së dytë shkurt të çdo viti

fushën e komandës

Fusha e komandës ndahet nga fushat kohë-datë me një ose më shumë hapësira dhe shtrihet deri në fund të rreshtit. Komandat përpunohen nga guaska /bin/sh.

Për shembull, hyrja e mëposhtme në skedarin crontab do të ekzekutonte /usr/sbin/backup çdo ditë në orën 1:00 të mëngjesit:

0 1 * * * /usr/sbin/backup

Disa komanda (për shembull, posta) kërkojnë të dhëna nga pajisja hyrje standarde. Kjo tregohet duke përdorur shenjën e përqindjes (%). Karakteri i parë i tillë tregon fillimin e hyrjes standarde, çdo pasues - një ndryshim rreshti.

Redaktimi i skedarit crontab

Skedari crontab redaktohet me komandën crontab -e. Dy qasje janë të mundshme:

  • krijimi i një skedari të ri me të gjitha hyrjet që duhet të përfshihen në skedarin crontab dhe më pas shkrimi i tij në disk nën këtë emër duke përdorur komandën crontab;
  • redaktimi i drejtpërdrejtë i skedarit me komandën crontab -e.

Shkruani nga skedari

Për të shkruar përmbajtjen e skedarit crontab nga një skedar tjetër, duhet të krijoni këtë skedar tjetër (sipas zakonit redaktori i tekstit) me të gjitha hyrjet nga të cilat duhet të përbëhet skedari crontab. Mund të jetë, për shembull, hyrja e mëposhtme:

0 1 * * * /usr/sbin/backup

Skedarit të krijuar duhet t'i jepet një emër i përshtatshëm, si p.sh. cron jobs. Pas skedari i specifikuar krijuar, përmbajtja e tij duhet të shkruhet në skedarin crontab me komandën:

~$ crontab cronjobs

Përmbajtja e skedarit cronjobs do të zëvendësojë plotësisht përmbajtjen e skedarit crontab këtë përdorues. Duke përdorur këtë metodë, çdo përdorues mund të modifikojë skedarin e tij crontab. Superpërdoruesi ka të drejtë të veçantë për të redaktuar skedarët crontab të përdoruesve të tjerë. Redaktimi i skedarit të dikujt tjetër tregohet nga flamuri -u. Për shembull, me komandë:

~# crontab -u oleg cronjobs

skedari cronjobs është shkruar si skedar crontab i përdoruesit oleg.

Redaktimi i drejtpërdrejtë i skedarit crontab

Komanda crontab shmang funksionimin me shumë hapa të krijimit skedar të veçantë. Nëse futni komandën crontab me opsionin -e, mund ta modifikoni direkt skedarin crontab.

Si parazgjedhje, komanda crontab me opsionin -e ngarkon skedarin crontab në . Redaktor Vi- një mjet i fuqishëm, megjithëse kompleks, i popullarizuar në mesin e përdoruesit me përvojë Unix. Dikush që preferon një redaktues të ndryshëm, p.sh. xedit, mund të vendosë vlerën e duhur variabli i mjedisit REDAKTOR:

~$ eksport EDITOR=xedit

Pas kësaj, futni komandën

bën që skedari crontab të hapet në redaktuesin e specifikuar.

Të ngjashme me përdorues i rregullt mund të modifikojë dosjen e vet crontab , superpërdoruesi mund të modifikojë skedarët crontab të përdoruesve të tjerë. Për këtë përdoret komanda:

~# crontab -u emri i përdoruesit -e

Duke parë skedarin crontab

Për të parë përmbajtjen e skedarit crontab, futni komandën:

Superpërdoruesi mund të shikojë skedarët crontab të përdoruesve të tjerë:

~# crontab -u emri i përdoruesit -l

Heqja e skedarit crontab

Për të hequr përmbajtjen e skedarit të tij crontab, përdoruesi fut komandën:

Superpërdoruesi mund të fshijë skedarët crontab të përdoruesve të tjerë.

Artikujt kryesorë të lidhur