Crontab - kui teil on praegu serveriserverit, siis võiksite proovida käivitada teatud protsesse, näiteks andmete rikastamist või taustal pisipiltide loomist, kasutajaliidest häirimata. Noh, Linuxil crontab on hea programm, mis teeb täpselt seda: Cron.

Sissejuhatus Croni

Mis see programm siis on? Cron liigitatakse deemoniks, mis suudab plaanilisi käske täita. See käivitatakse automaatselt mitme kasutaja käitustasemete sisestamisel kataloogist /etc/init.d. See otsib spoolialast kataloogist / var / spool / cron / crontabs crontab-faile, mis on nimetatud kontode / etc / passwd kontode järgi. Selles kataloogis crontabidele juurde pääsemiseks peate neile otse juurde pääsema kasutama käsku crontab. Cron suudab lugeda ka kataloogi / etc / crontab kergeid erinevaid vorminguid, aga ka faile kataloogis /etc/cron.d.

Pärast konfigureerimist ärkab Cron iga minut, uurib talletatud linux crontabe ja kontrollib käsku, kas seal on midagi täide viia. Kui käsk täidetakse ja väljund genereeritakse, siis saadetakse väljund crontabi muutuja MAILTO kaudu crontabi omanikule või kasutajale. Neid protsesse käivitava croni lastekoopiad on nimetatud suurtähtedega, mida näete ps ja syslog väljundis.

Samuti kontrollib Cron iga minut spoolikataloogi muudatuste osas muudatusi. Kui muudatusi on, uurib see kõigi linuxi crontabide modtime'i ja laadib uuesti need, mis on muutunud. Selle tulemusel ei pea cron crontab-faili muutmisel taaskäivitama.

Kui kella muudetakse kolme tunni võrra või vähem, eksisteerivad erilised kaalutlused, näiteks suveaja alguses ja lõpus. Kui aeg edasi liigub, muudetakse vahelejäänud ajaga tööde algust varsti pärast muudatust. Teisest küljest, kui aeg liigub tagasi, ei tehta korduval ajal langevaid töid uuesti.

See puudutab ainult neid töid, mis töötavad kindlal kellaajal, mitte tunnitöödena või neid, mis on minut või tunnis tähisega '*' tähistatud. Looduslike autodega täpsustatud töökohti hakatakse kohe uue aja järgi käivitama. Kui kella muutmine kestab üle kolme tunni, kasutatakse uut aega kohe.

Red hat ja Debiani puhul käsitleb cron cron.d-faile linux crontab-faili laienditena, kuna need järgivad faili erivormingut, mis tähendab, et need sisaldavad kasutajavälja. Selle funktsiooni eesmärk on lubada pakette, mis nõuavad ajaplaneerimise täpsustamist kui päeva-, kuu- või nädalakataloogid. Ideaalis peaksid sellised failid olema nimetatud nende tarnijapakettide järgi. Failid peavad vastama osade nimetamistavale, kuna need peavad koosnema ainult suurtähtedest ja suurtähtedest, numbritest, sidekriipsudest ja alakriipsudest. Cron.d kataloogis leiduvaid faile jälgitakse muudatuste suhtes, nagu ka linux crontab kataloogis. Käskude nagu / bin / ls korral kasutage kindlasti parema käsu saamiseks absoluutseid raja nimesid.

Sissejuhatus Linux Crontabi

Nüüd, kui teate croni plusse ja külgi, vaatame lähemalt linux crontab'i, mis on deemoni enda ajamiseks tabelite installimise, desinstallimise või loetlemise programm. Igal kasutajal võib olla oma linux crontab ja failid on saadaval crontabs kataloogis, kuid pole mõeldud otseseks redigeerimiseks.

Kõik kasutaja linuxi crontabas antud käsud täidetakse nagu kasutaja, kellele see kuulub. Vahelehti, tühikuid ja tühje ridu tavaliselt eiratakse. Rindasid, millel on esimese mitte-tühikmärgina räsimärk, eiratakse, kuna neid käsitletakse kommentaaridena. Väärib märkimist, et kommentaarid pole lubatud croni käskude samades ridades, kuna neid loetakse käsu osana. Sarnasel märkusel pole keskkonnamuutuja sätetega ridadele kommenteerimine lubatud.

Crontabil on aktiivne rida, millel on käsk cron või keskkonnamuutuja, mis on kujul “nimi = väärtus”, kuhu vajadusel lisada võrdusmärgi ümber tühikuid. Kõik järgmised tühikud, mis ei ole juhtiv, on osa nime väärtusest. Väärtusstringi võiks paigutada ühe- või kahekohalistesse jutumärkidesse, et säilitada tühikuid või tühikuid. Keskkonnaasenduste jaoks seda ei sõeluta, mistõttu võite leida, et read nagu “PATH = $ HOME / bin: $ PATH” ei tööta ootuspäraselt.

Paljud keskkonnasätted seadistatakse croni poolt automaatselt, näiteks HOME ja LOGNAME seatakse kasutaja parooliridalt ja SHELL seatakse väärtusele / bin / sh ja PATH väärtuseks / usr / bin: / bin. Saate PATH, SHELL ja HOME crontabi sätete kaudu alistada. LOGNIMI ei saa siiski muuta, kuna see on kasutaja, kellelt töö töötab. BSD-süsteemides võidakse seda muutujat nimetada USER, sel juhul seatakse ka USER.

Kui meilide saatmine on osa käskudest, mida käitatakse Linux crontabas, vaatab cron ka MAILTOt. Kui muutuja on määratletud ja see pole tühi, saadetakse nimetatud kasutajale kiri. Kui see on tühi, ei saadeta meilisõnumeid ja selle asemel saadetakse kiri linux crontabi omanikule. Kui fail cron.allow on saadaval, peate selle käsu kasutamiseks selles olema loetletud. Kui seda faili ei eksisteeri, kuid fail cron.deny on olemas, siis tuleks käsu kasutamiseks sellest failist eemaldada. Kui kumbki fail puudub, saab sõltuvalt saidist sõltuvatest parameetritest käsku kasutada ainult superkasutaja. Teise võimalusena saavad kõik kasutajad käsku kasutada, nagu tavaliste Debiani süsteemide puhul.

Kui valik –u on saadaval, annab see kasutajanime, kelle linux crontab nõuab kohandamist. Kui seda pole antud, uurib crontab käsku täitva kasutaja crontab. Su sisemuses joostes on oluline seda võimalust alati kasutada turvalisuse huvides, kuna linux crontab võib su segi ajada. Valik -l on saadaval praeguse crontabi kuvamiseks standardväljundis, variant -r eemaldab aktiivse crontab'i. Käsku -e kasutatakse praeguse linux crontabi redigeerimiseks, kasutades redaktoreid või keskkonnamuutujaid VISUAL. Te ei saa kasutada ühtegi faili lahti ühendava ja taasloomise redigeerijat; vajate redigeerijat, mis redigeerib faili paigas. Pärast redigeerijast väljumist installitakse kohandatud linux crontab automaatselt.

Moodulit pam_env toetab Deon GNU / Linuxi süsteemis ka cron, laadides keskkonda vastavalt moodulifailile. Siiski tuleb arvestada, et PAM-säte ei alista ülalnimetatud sätteid ega crontab-faili sätteid. Kui soovite, et PATH erineks prügikasti asukohast, peate selle seadistama crontab-failis. Cron saadab vaikimisi kirju, kasutades sisutüüpi 'tekst / tavaline' koos tähemärgikomplekti parameetriga, selle lokaadi koodikomplekti / märgikaardile, kus cron on käivitatud, mis on vaikesüsteemi lokaat ilma ühegi keskkonnamuutuja määramata, või lokaadi, mille muutujad seadistavad. E-posti väljundile saate lisada oma tähemärgikodeeringud, seadistades ristkülikutes muutujad 'Content_Transfer_Encoding' ja 'Content_Type', et need vastaksid nimede päiste päistele.

Soovitatavad kursused

  • Online R Stuudio Anova tehnikakursus
  • Sertifikaadikoolitus AngularJS-is
  • ISTQB 1. taseme atesteerimiskursus
  • Tarkvara testimise aluste atesteerimiskoolitus

Töötamine Crontabi kallal

Käsul crontab, mida leidub Unixi-laadsetes ja Unixi-opsüsteemides, pääseb juurde terminali kaudu. Et vaadata, mis crontab praegu töötab, avage oma süsteemis terminal ja käivitage järgmine käsk:

$ sudo crontab -l

Crontabi tööloendite redigeerimiseks võite kasutada järgmist käsku:

$ sudo crontab -e

See käsk avab teie süsteemis vaikimisi redaktori, mis võib olla pico või vio, et muuta crontab. Crontab-töö salvestamiseks crontab-faili salvestage ja väljuge redaktorist. Crontabi töid või cronjobe saab kirjutada nii:

* * * * * /bin/execute/this/script.sh

Ülaltoodud käsus on viis tärni, igaüks tähistab töö kavandamiseks erinevaid kuupäevaosasid. Siin nad on:

  1. Minut, vahemikus null kuni 59
  2. Tund, vahemikus null kuni 23
  3. Kuu päev, vahemikus üks kuni 31
  4. Kuu, vahemikus üks kuni 12
  5. Nädalapäev, vahemikus null kuni kuus, null tähendab pühapäeva

Ülaltoodud nimekiri on esitatud järjekorras, nii et kõigepealt peate määratlema minut, millele järgneb tund, kuu päev, kuu ja nädalapäev. Võite tärniga tähistada, kui te ei soovi ühtegi välja määratleda, kuid on oluline arvestada, et sümbol tähendab iga. Kui jätate kõik viis välja määratlemata väljad tärnidega puutumatuks, tähendab see iga tunni iga minutit, iga nädala iga päev ja iga kuu.

Oletame nüüd, et soovite skripti käivitada lihtsalt pühapäeva keskpäeval, siin on see, mida teete:

0 12 * * 0 /bin/execute/this/script.sh

Nüüd käivitatakse skript, kui süsteemikell jõuab igal pühapäeval igal nädalal 1200 tundi. Kui soovite skripti käivitada igal tööpäeval kell 12, kirjutage siin järgmist:

0 12 * * 1-5 /bin/execute/this/script.sh

Cron täidab käske, kui aasta, kuu, tunni ja minuti väljad vastavad praegusele kellaajale või kui vähemalt kuu päev ja aasta vastavad praegusele kellaajale. Välja võib tähistada tärniga, et tähistada sõna „esimene-viimane”. Numbrivahemikud on lubatud, kusjuures vahemikud on kaks numbrit, mis on eraldatud sidekriipsuga. Konkreetne vahemik on kaasav, nii et tundide vahemik 8-11 määratleb hukkamise kaheksandal, üheksandal, kümnendal ja üheteistkümnendal tunnil. Samuti toetatakse loendeid, kusjuures iga number eraldatakse komadega, näiteks '1, 2, 8, 9'. Võite ka segada ja sobitada, nii et see võib olla '1, 2, 8-11'.

Asteväärtusi saate kasutada koos vahemikega, kui '/' vahemiku järel määrab numbri väärtuse vahelejätmise vahemikus. Näiteks tundide väljal '0-11 / 2' täpsustatakse käsu täitmine igal teisel tunnil, see kirjutatakse loendina nii: '0, 2, 4, 6, 8, 10'. Tärni järel võib lubada samme, näiteks '* / 2', mis tähistab käsku, mis tuleb täita iga kahe tunni tagant. Päeva- ja kuuväljade jaoks võite kasutada selle päeva või kuu kolme esimest tähte ja täht ei oma tähtsust. Nimekirjade loendeid ja vahemikke ei toetata. Täitmise päeva saab määratleda kahes valdkonnas: nädalapäev ja kuu päev. Kui mõlemad väljad on piiratud, käivitatakse käsk, kui kumbki väli sobib.

Ülejäänud rida on 'kuues' väli, mis täpsustab käivitatava käsu. Rea käsklus võtab uue rea või kuni% märki. Seda teostab sh või crontab-faili muutuja SHELL määratud kest. Käsu% muudetakse uue rea märkideks, kui nad ei pääse kaldkriipsuga '\'. Kõik andmed pärast esimest% -märki saadetakse käsule standardsisendina. Ühte käsurida ei saa mitmeks reaks jagada.

Trikkide ajakava plaanimine Crontabil

Vormindamine võib veidi ära harjuda, kuid siin on mõned näpunäited, mis teid abistavad. Kui soovite iga kümne minuti tagant cronjobit joosta, võite selle kirjutada nii:

0, 10, 20, 30, 40, 50 * * * * / bin/execute/this/script.sh

Või võite selle kirjutada sel viisil, mis on lihtsam:

* / 10 * * * * /bin/execute/this/script.sh

Teil on ka spetsiaalsed sõnad, mida saate esimese minuti välja jaoks numbri asemel lisada, näiteks nii:

  • @reboot: see käivitaks skripti üks kord süsteemi käivitamisel
  • @ aastaarv: käsu käitamiseks üks kord aastas (alternatiivne formaat oleks “0 0 1 1 *”)
  • @ aastaselt: alternatiiv aastasele märksõnale
  • @ üks kuu: käsu käitamiseks üks kord kuus (“0 0 1 * *”)
  • @ nädal: jooksma üks kord nädalas (“0 0 * * 0”)
  • @ igapäevaselt: korra nädalas joosta (“0 0 * * *”)
  • @midnight: alternatiiv igapäevasele märksõnale
  • @ tund: jooksma iga tund (“0 * * * *”)

Väljundi salvestusruum

Vaikimisi salvestab cron töö väljundi kasutaja postkasti või juuri. Kuid saate väljundi lihtsamaks ja esinduslikumaks muuta, salvestades selle eraldi logifaili. Saate seda teha järgmiselt:

* / 10 * * * * /bin/execute/this/script.sh >> /var/log/script_output.log 2> & 1

Linux on võimeline aruandlust erinevatel tasanditel. Teil on standardsed vead STDERR ja standardväljund STDOUT, tähistatud vastavalt numbritega 2 ja 1. Järgmises avalduses käsitatakse salvestada nii STDERR kui ka STDOUT, et luua ühtne sõnumite ja vigade andmevoog:

2> ja 1

Oleme määratlenud väljundvoo, nüüd peame sellele sihtkoha määrama. ">" Kirjutab faili üle ja ">>" lisab selle. Lisamiseks, mis on alati turvalisem, võite kasutada järgmist käsku:

>> /var/log/script_output.log

Järeldus

Nagu näete, võimaldab cron teil seadistada ülesanded taustal automaatselt regulaarsete intervallidega. See võimaldab varukoopiate automatiseeritud loomist, värskenduste ajastamist, failide sünkroonimist ja palju muud. Saate crontabiga teha kõike seda ja palju muud.

Soovitatavad artiklid: -

Siin on mõned artiklid, mis aitavad teil Linux Crontabi kohta üksikasjalikumat teavet saada, nii et minge lihtsalt lingi kaudu.

  1. Linuxi intervjuu küsimused ja vastused | Kasulik ja enim küsitud
  2. Karjäär Linuxis
  3. 10 parimat kasulikku Linuxi rakendust süsteemiadministraatoritele
  4. Linux vs Windows 10

Kategooria: