Crontab - Ako trenutno imate web lokaciju s velikim serverom, možda želite pokrenuti određene procese poput obogaćivanja podataka ili generiranja sličica u pozadini, bez ometanja korisničkog sučelja. Pa, Linux crontab ima dobar program koji radi upravo to: Cron.

Uvod u Cron

Pa što je ovaj program? Cron je kategoriziran kao demon koji može izvršavati zakazane naredbe. Automatski se pokreće kod unosa razina trčanja za više korisnika, od /etc/init.d. Traži područje špule na / var / spool / cron / crontabs za datoteke crontab nazvane po računima u / etc / passwd. Za pristup krontabovima u ovom direktoriju, morate koristiti naredbu crontab umjesto da im izravno pristupite. Cron može čitati neznatno različit format / etc / crontab, kao i datoteke u /etc/cron.d.

Jednom konfiguriran, Cron se budi svake minute, pregledava pohranjene linux krontabs i provjerava naredbu da li postoji nešto što treba izvršiti. Ako se izvrši naredba i generira se izlaz, izlaz se šalje vlasniku crontaba ili korisniku u varijabli MAILTO u crontabu. Dijete kopije cron koji pokreće ove procese su imenovane velikim slovima, što ćete vidjeti u izlazu ps i syslog.

Cron također provjerava svake minute za promjene u vremenu rada mape spool-a. Ako dođe do promjena, tada se ispituje modtime svih Linux-ovih crontab-ova i ponovno se unosi onaj koji je promijenjen. Kao rezultat, cron se ne mora ponovo pokretati kad se promijeni datoteka crontab.

Kad se sat promijeni za tri sata ili manje, postoje posebna razmatranja kao na početku i na kraju dnevnog vremena. Ako se vrijeme pomiče naprijed, poslovi koji će se izvoditi u preskočenom vremenu bit će promijenjeni kako bi se pokrenuli ubrzo nakon promjene. S druge strane, ako se vrijeme pomiče unatrag, poslovi koji padaju u ponovljenom vremenu neće se ponavljati.

Utječu samo poslovi koji se izvode u određeno vrijeme a ne poslovi po satu ili oni koji su označeni sa '*' u specificiranju minuta / sat. Poslovi određeni s divljim automobilima odmah se pokreću na temelju novog vremena. U slučaju promjene sata dulje od tri sata, odmah se koristi novo vrijeme.

U Red hat-u i Debianu, cron tretira datoteke cron.d kao ekstenzije na linux crontab datoteku jer slijede poseban format datoteke, što znači da uključuju korisničko polje. Ova značajka ima za cilj omogućiti pakete koji zahtijevaju finiju kontrolu zakazivanja od dnevnih, mjesečnih ili tjednih imenika. Takve će datoteke idealno biti imenovane po njihovim dobavljačima. Datoteke moraju biti u skladu s konvencijom o imenima koja se koristi za dijelove izvodiča, jer se trebaju sastojati isključivo od velikih i malih slova, znamenki, crtica i podvlaka. Datoteke u direktoriju cron.d nadgledaju promjene, baš kao i linux crontab direktorij. Za naredbe poput / bin / ls obavezno upotrijebite apsolutna imena staza za pozivanje prave naredbe.

Uvod u Linux Crontab

Sad kad znate ulaze i nedostatke crona, pogledajmo pobliže Linux crontab koji je program za instaliranje, deinstaliranje ili popis tablica za pogon samog demona. Svaki korisnik može imati vlastiti linux krontab, a datoteke su dostupne u direktoriju crontabova, ali nisu namijenjene za izravno uređivanje.

Svaka naredba dana u linux krontabu korisnika izvršavat će se onako kako je korisnik posjeduje. Kartice, vodeći razmaci i prazne linije obično se zanemaruju. Linije koje imaju hash-znak kao prvi znak koji nije razmaknice zanemaruju se dok se tretiraju kao komentari. Vrijedno je napomenuti da komentari nisu dopušteni u istim redovima cron naredbi jer će se čitati kao dio naredbe. Na sličnu napomenu, komentari također nisu dopušteni na linijama s postavkama varijable okoline.

U linux crontabu aktivna linija s postavkom cron naredbe ili varijable okoline koja je u obliku "name = vrijednost", gdje se mogu dodavati razmaci po potrebi oko znaka jednakosti. Bilo koji sljedeći ne vodeći razmaci dio su vrijednosti imena. Niz vrijednosti može se staviti u pojedinačne ili dvostruke podudarne navodnike za očuvanje kasnih ili vodećih praznih mjesta. Nije raščlanjen za zamjene okoliša, pa ćete otkriti da redovi poput "PATH = $ HOME / bin: $ PATH" neće raditi kako se očekuje.

Mnoge postavke zaštite okoliša automatski se postavljaju pomoću Cron-a, poput HOME i LOGNAME koji se postavljaju iz passwd linije korisnika i SHELL se postavlja na / bin / sh, a PATH se postavlja na / usr / bin: / bin. Postavkama crontab-a možete nadjačati PATH, SHELL i HOME. LOGNAME se, međutim, ne može promijeniti, jer je to korisnik od kojeg se posao izvodi. Na BSD sustavima ova se varijabla može nazvati USER, u tom slučaju će se postaviti i USER.

Ako je slanje mailova dio naredbi koje se izvode na linux linux crontabu, cron će također pogledati MAILTO. Ako je varijabla definirana i nije prazna, e-mail se šalje imenovanom korisniku. Ali ako je prazan, ne šalje se pošta i umjesto toga šalje se vlasniku linux crontaba. Ako je dostupna datoteka cron.allow, tada je za upotrebu ove naredbe potrebno da budete navedeni u njoj. Ako ta datoteka ne postoji, ali postoji datoteka cron.deny, tada biste je trebali ukloniti iz naredbe. Ako nijedna datoteka ne postoji, samo će super korisnik moći koristiti naredbu ovisno o parametrima koji ovise o web mjestu. Alternativno, svi korisnici će moći koristiti naredbu, što je slučaj kod standardnih Debian sustava.

Ako je opcija –u dostupna, daje korisničko ime čiji linux crontab zahtijeva podešavanje. Ako nije dano, onda crontab ispituje crontab korisnika koji izvršava naredbu. Važno je koristiti ovu opciju uvijek radi sigurnosti prilikom trčanja unutar su-a, jer se Linuxov crontab može zbuniti. Opcija -l je dostupna za trenutni krontab koji se prikazuje na standardnom izlazu, dok opcija -r uklanja trenutni krontab. Naredba -e koristi se za uređivanje trenutnog linux crontab-a pomoću uređivača navedenih u varijablama okoliša EDITOR ili VISUAL. Ne možete koristiti nijedan uređivač koji uklanja vezu i ponovno stvaranje datoteke; treba vam urednik koji uređuje datoteku na svom mjestu. Nakon izlaska iz uređivača, podešeni linux crontab bit će automatski instaliran.

Pam_env modul također podržava cron na Debian GNU / Linux sustavu, učitavajući okruženje kako je određeno u datoteci modula. Međutim, treba napomenuti da postavka PAM ne nadjačava gore navedene postavke ili postavke datoteke crontab. Ako želite da se PATH razlikuje od mjesta za smeće, morate ga postaviti u datoteci crontab. Cron će, prema zadanim postavkama, slati e-poštu koristeći vrstu sadržaja 'text / plain' s postavljenim parametrom znakova na skupu koda / znakovnoj mapi na mjestu gdje se cron pokrenuo, što je zadani jezik sustava bez ikakve postavljene varijable okoline ili lokale koji varijable postavljaju. Možete dodati svoje kodiranje znakova za izlaz e-pošte postavljanjem varijabli 'Content_Transfer_Encoding' i 'Content_Type' u kronicama da biste odgovarali zaglavima e-pošte imena.

Preporučeni tečajevi

  • Online tečaj R Anova tehnike
  • Obuka za certificiranje u AngularJS
  • ISTQB certifikacijski tečaj razine 1
  • Trening za certificiranje u osnovama testiranja softvera

Rad na Crontabu

Naredbi crontab koja se nalazi u operacijskim sustavima sličnim Unixu i Unixu može se pristupiti putem terminala. Da biste vidjeli koji se crontab trenutno pokreće, otvorite terminal na vašem sustavu i pokrenite sljedeću naredbu:

$ sudo crontab -l

Za uređivanje popisa zadataka za crontab možete koristiti sljedeću naredbu:

$ sudo crontab -e

Ova naredba otvara zadani uređivač u vašem sustavu, koji bi mogao biti pico ili vio, za promjenu krontaba. Da biste spremili posao crontaba u svoju datoteku crontab, spremite i izađite iz uređivača. Posao na Crontabu ili posao na kronjobima može se napisati ovako:

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

U gornjoj naredbi nalazi se pet zvjezdica, a svaka predstavlja različite dijelove datuma za zakazivanje zadatka. Evo ih:

  1. Minuta, koja se kreće od nula do 59
  2. Sat, u rasponu od nula do 23
  3. Dan u mjesecu, kreće se od jedan do 31
  4. Mjesec, u rasponu od jedan do 12
  5. Dan u tjednu, kreće se od nula do šest, a nula znači nedjelja

Gornji je popis dan po redoslijedu, pa prvo morate definirati minutu, a zatim sat, dan u mjesecu, mjesec i dan u tjednu. Zvezdicu možete zadržati ako ne želite definirati nijedno polje, ali bitno je napomenuti da simbol znači "svako". Ako svih pet polja ostavite nedefiniranim sa zvjezdicama netaknutim, to znači svake minute svakog sata, svakog dana svakog tjedna i svakog mjeseca.

Pretpostavimo da želite izvršavati skriptu svakog podneva u nedjelju, evo što trebate učiniti:

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

Sada se skripta izvršava kada sistemski sat pogodi 1200 sati svake nedjelje, svakog tjedna svakog mjeseca. Ako želite izvršiti skriptu svaki radni dan u 12 sati, evo što pišete:

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

Cron izvršava naredbe kada se godina, mjesec, sat i minuta podudaraju s trenutnim vremenom ili kada se barem dan mjeseca i godine podudaraju s trenutnim vremenom. Polje može biti označeno zvjezdicom za označavanje "prvo-zadnje". Dopušteni su rasponi brojeva, a rasponi su dva broja koji su odvojeni crticom. Specifični raspon je uključiv, tako da raspon od 8-11 za 'sate' određuje izvršenje u osmom, devetom, desetom i jedanaestom satu. Podržani su i popisi, pri čemu je svaki broj odvojen zarezima, poput "1, 2, 8, 9". Možete i miješati i slagati, pa bi to moglo biti '1, 2, 8-11'.

Možete upotrijebiti vrijednosti koraka zajedno s rasponima, s '/' nakon raspona koji određuje preskakanje vrijednosti broja kroz raspon. Na primjer, '0-11 / 2' u polju sati određuje izvršenje naredbe svaki drugi sat, što bi bilo napisano kao popis ovako: '0, 2, 4, 6, 8, 10'. Korak se može dopustiti nakon zvjezdice, poput "* / 2", za navođenje naredbe koja se mora izvoditi svaka dva sata. Za polja dana i mjeseca možete koristiti prva tri slova tog određenog dana ili mjeseca, a slučaj nije važan. Međutim, popisi i rasponi imena nisu podržani. Dan izvršenja može se odrediti u dva polja: dan u tjednu i dan u mjesecu. Ako su oba polja ograničena, naredba će se izvoditi kada se podudara bilo koje polje.

Ostatak retka predstavlja polje 'šesto', koje određuje naredbu koju treba izvesti. Dio naredbenog retka ima do novog retka ili do% znaka. Izvodi ga sh ili određena ljuska u varijanti SHELL datoteke crontab. U naredbi% promijenit će se u nove znakove osim ako se ne izvrgnu s kosom linijom '\'. Svi podaci nakon prvog znaka% šalju se kao standardni ulaz naredbi. Ne možete podijeliti jednu naredbenu liniju na više linija.

Trikovi zakazivanja na Crontabu

Na oblikovanje se može potrajati, ali evo nekoliko trikova koji će vam pomoći. Ako želite pokrenuti kronjob svakih deset minuta, možete to napisati ovako:

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

Ili ga možete napisati ovako, što je lakše:

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

Imate i posebne riječi koje umjesto prvog broja možete dodati polje za prvu minutu, kao što je:

  • @reboot: ovo bi pokrenulo skriptu jednom prilikom pokretanja sustava
  • @godno: naredbu pokrenuti jednom godišnje (alternativni format bio bi "0 0 1 1 *")
  • @ godišnje: alternativa godišnjoj ključnoj riječi
  • @monthly: izvršavanje naredbe jednom mjesečno ("0 0 1 * *")
  • @weekly: pokretanje jednom tjedno ("0 0 * * 0")
  • @daily: pokretanje jednom tjedno ("0 0 * * *")
  • @midnight: alternativa dnevnoj ključnoj riječi
  • @ourly: trčanje svakih sat vremena ("0 * * * *")

Izlazno spremište

Cron sprema izlaz zadatka prema zadanom u pretinac korisnika ili root. Ali izlaz možete učiniti jednostavnijim i prezentativnijim ako ga spremite u zasebnu datoteku dnevnika. Ovako to radite:

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

Linux je sposoban izvještavati na različitim razinama. Imate standardne pogreške STDERR i standardni STDOUT, označene kao 2 i 1, respektivno. Sljedeća izjava govori da pohranite i STDERR i STDOUT kako biste stvorili jedan tok podataka poruka i grešaka:

2> & 1

Dakle, definirali smo izlazni tok, sada mu moramo dati odredište. '>' Prepisuje datoteku, a '>>' je dodaje. Za dodavanje, koje je uvijek sigurnije, možete koristiti sljedeću naredbu:

>> /var/log/script_output.log

Zaključak

Kao što vidite, cron vam omogućuje postavljanje zadataka za automatsko pokretanje u pravilnim intervalima u pozadini. To omogućuje automatizirano stvaranje sigurnosnih kopija, zakazivanje ažuriranja, sinkronizaciju datoteka i još mnogo toga. Sve to i više možete učiniti s krontabom.

Preporučeni članci: -

Evo nekoliko članaka koji će vam pomoći da saznate više detalja o Linux Crontabu pa samo prođite vezu.

  1. Linux pitanja i odgovori za intervju | Korisno i najtraženije
  2. Karijere u Linuxu
  3. Top 10 korisnih Linux aplikacija za administratore sustava
  4. Linux vs Windows 10

Kategorija: