Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Savjet
  • Kako podesiti vrijeme u cron. Šta je Cron? Neki korisni primjeri za kreiranje zadataka koji se često ponavljaju

Kako podesiti vrijeme u cron. Šta je Cron? Neki korisni primjeri za kreiranje zadataka koji se često ponavljaju

Cron (krune), Crontab (crontab), Task Manager- svi oni koji su povezani sa "izgradnjom sajta" čuli su ova imena mnogo puta. Dakle, šta je Cron? Kako raditi s njim? Zašto vam je potreban Cron i kako ga ispravno podesiti? Danas ćemo analizirati sva ova pitanja.

Prva stvar koju želim odmah napomenuti: Cron, Crontab, Task Manager- svejedno je, nemojte da vas sramoti raznolikost imena.

U praksi svakog web-mastera, uvijek će se pojaviti potreba za pokretanjem bilo kojeg zadatka po rasporedu. One. Vi samo propisujete naredbu u kojoj trebate izvršiti zadatak podesiti vrijeme, i to je to. Tada se sve dešava bez vašeg učešća - automatski, i ono što vam je najprijatnije u trenutku kada vam je potrebno.

Na primjer, trebate periodično slati obavještenja partnerima na e-mail... Ili želite da postavite automatske pozdrave ili podsjetnike. Ili imate direktorij lokacija i želite da skripta direktorija provjerava na datoj frekvenciji povratne veze itd. Svi ovi zadaci se lako mogu automatizirati povjeravanjem Cronu ili, kako kažu - Task Scheduler... I postoje skripte u kojima za normalan rad Kruna je obavezna.

Gotovo svi moderni hostingi pružaju gotovu funkciju Task Scheduler... Ako na Hostingu nema takve funkcije, bolje je ne kontaktirati takvu Hosting kompaniju. Cron ovih dana više nije luksuz, a ako Hosting ne nudi planer zadataka u paketu usluga, bolje potražite drugu kompaniju, drugih bitnih funkcija sigurno neće biti.

Pa da pređemo preko svega praktične akcije prema Cron postavci na primjeru ruskog cPane l (kontrolne ploče stranice) Hudson Hosting Company... Zašto tačno Hudson? Jednostavno je - moja stranica živi ovdje i stvarno mi se sviđa ovaj hosting: puni paket sve moguće usluge po veoma pristupačnim cenama.

Iako postavljanje Task Scheduler svuda se dešava otprilike isto.

Idemo do kontrolne ploče stranice, u u ovom slučaju ovo je cPanel (ima i drugih). Pristup Vam je omogućen odmah nakon kupovine Hosting, idite dolje i pronađite takav odjeljak, Dodatni alati:

Nalazimo u ovom dijelu Task Manager i kliknite na njega. Ovaj meni se ponekad naziva i Cron Panel. Evo kako se karakteriše Cron:

"Task Scheduler vam omogućava da pokrenete komande određeno vrijeme bez vašeg učešća. Ovo vam omogućava da automatizujete zadatke koji se redovno ponavljaju. Planer zadataka je veoma fleksibilan i omogućava vam da automatizujete izvršavanje bilo koje komande koju želite da pokrenete. Na primjer, možete reći planeru da ukloni privremeni fajlovi svake sedmice tako da ne zauzimaju previše prostora na disku."

Možete birati između dvije opcije za kontrolu Cron-a:

Standard i Napredno (Unix stil), razmotrite svaki od njih.

Prva opcija. Kliknite na dugme Standard, otvara se prozor za postavljanje zadatka:

Kao što vidite, ovdje je sve vrlo jednostavno. Vi samo trebate podesiti vrijeme izvršenja naredbe, navodeći za to u odgovarajućim poljima kada će se naredba pokrenuti, u koje vrijeme: Minute, Sat, Dan, Mjesec, Dan u nedelji... I naravno, napišite samu naredbu za pokretanje u polju: Naredba za trčanje.

Vrijednosti se mogu napisati ručno (u lijevo polje) ili koristiti padajuću listu (strelice desno).

Hajde da vidimo šta smo ovde napisali. I napisali smo sljedeći zadatak: pokrenite naredbu za izvršenje:
/ usr / bin / php /home/freeman/domains/public_html/cron/new_day.php
svakih 30 minuta, svakih 6 sati, svakog dana u januaru, ako pada u ponedjeljak.

Nakon postavljanja zadatka, kliknite na dugme Dodaj novi Cron posao.

Nije jasno šta si napisao? :) Razmotrimo drugu opciju, a zatim objasnimo detaljnije. Vraćamo se na prethodnu stranicu.

Druga opcija. Kliknite na dugme Napredno (Unix stil), otvara se prozor za postavljanje zadatka:

Ova opcija za postavljanje zadatka na Kron mi se više sviđa. I iako se zove Advanced, po mom mišljenju je jednostavniji i praktičniji.

Ovdje, kao iu prvom slučaju, morate naznačiti kada će se naredba pokrenuti, također ukazujemo: Minute NS, Sat NS, Dan, Mjesec, Dan u nedelji i sam zadatak za izvršenje na terenu Zapovjedi... Nakon toga kliknite na dugme Dodaj Cronjob. Zadatak je postavljen. Stranica se ažurira:

I možete dodati novi zadatak ponavljanjem cijele procedure. Zadatak možete izbrisati klikom na križić nasuprot zadatku s desne strane.

Postoji još jedan ne potreban parametar, ali preporučujem da ga prepišete: jeste e-mail adresa... Na ovu adresu će biti poslat izvještaj o izvršenju naredbe. Polje je opciono, ali je bolje da unesete adresu da budete svjesni stvari, ako nešto krene po zlu, Cron će vas o tome obavijestiti pismom, a ako je pismo ostalo prazno, onda je sve OK!

Šta smo ovde napisali? Izvršite komandu u 11 minuta, svaki 2. sat, svaki dan, svaki mjesec, 1., 3., 5., 7. dan u sedmici.

U okviru za odabir: Minute navedite minut (ili minute) u kojem će se zadatak pokrenuti, u polju Sat navedite sat (ili sate) u kojem će se zadatak izvršiti, kao i dan(ove) i mjesec(ove), u svakom polju možete navesti kao tačno vreme tako i interval.

Na primjer, možete odrediti ne samo 11 minuta, već 11-15 (interval), što znači da će se zadatak izvoditi svakih 11, 12, 13, 14, 15 minuta. Ili navedite određene minute, na primjer: 11, 14, 18 - to znači da će se zadatak izvoditi u 11, 14 i 18 minuta. Također možete koristiti znak * (zvjezdica)- označava svaki. Ako stavite * (zvjezdica) u polju Minute, zadatak će se pokretati svake minute, tj. 60 puta na sat.

U svakom polju možete odrediti i određeno vrijeme i interval, kao i koristiti zvjezdice.

Snimanje */2 znači: svaka 2 sata... Sve ove varijacije zapisa primjenjuju se na sva polja ( Minute NS, Sat NS, Dan, Mjesec, Dan u nedelji) kada navedete zadatak za Cron. Razumijete, mogu postojati milioni opcija, Pokrenite zadatak, barem svake minute tijekom cijele godine. Naravno, takva potreba se gotovo nikada ne javlja, ali teoretski postoji takva mogućnost.

I također imajte na umu da neki hostingi nameću ograničenja za pokretanje Krone, na primjer, ne više od 3 - 10 puta na sat. Zašto? Stvara se prilično značajno opterećenje na serveru. Zbog kršenja, vaš račun može biti blokiran.

Sada da shvatimo kako se popunjava polje Naredba za trčanje(u prvoj opciji) ili Command (u drugoj opciji).

Zadatak je postavljen na sljedeći način.

Pre svega, odredite putanju do PHP-a na vašem serveru, na mom serveru put /usr/bin/php može biti drugačiji za vas, proverite sa administratorima vašeg servera, posle putanje do PHP-a stavite razmak i upišite punu internu putanju do datoteke koja bi trebala pokrenuti Cron... Pretpostavimo da mi treba Cron da pokrenem datoteku mail.php, znajući internu putanju do datoteke, pišem sljedeće:

public_html / cron / mail.php

one. u root folderu public_html nalazi se cron folder u kojem se nalazi datoteka mail.php, a cijela komanda za pokretanje mail.php datoteke će izgledati ovako:

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

Na različitim hostingima, put do PHP-a se može razlikovati i biti drugačije napisan, Root folder lokacija lokacije također nije uvijek slučaj public_html pa ako ne konkretan primjer zapis o zadatku Kronu, bolje je o tome pitati administratora, opisati šta na kraju želite dobiti. Dobro

U Unix OS-u moguće je pokrenuti korisničke programe u određeno vrijeme. Za to se koristi program cron, koji prima upute od korisnika i, slijedeći ih, izvršava sve zadatke prema primljenim skriptama. Naši klijenti mogu iskoristiti ovu priliku za obavljanje ponavljajućih zadataka.

Kako postaviti cron na vašem ličnom računu (za unix tarife)

Pošto ne mogu svi PHP programi da rade kroz CLI SAPI bez prethodne modifikacije, možete ih pokrenuti wget... Na primjer:

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

Ako skripta koristi funkcije zahtijevaju, uključiti, i sadrže relativne staze, a zatim na početku skripte koja se izvršava koristite poziv funkcije chdir () koji će postaviti trenutni radni direktorij.

Kako dobiti poruke o grešci iz cron programa

Ako naiđete na greške prilikom izvršavanja programa koji se pokreće iz cron-a, vjerovatno želite da primate poruke o tim greškama kako biste imali potpunu kontrolu nad radom periodično započetih zadataka. Da biste to učinili, stavite sljedeći red na početak cron skripte:

[email protected]

Naravno, [email protected] treba zamijeniti stvarnom adresom e-pošte na koju će se morati dostavljati obavještenja. Ako trebate primati poruke o grešci na nekoliko adresa, navedite sve ove adrese odvojene zarezima.

Imajte na umu da će cron poslati poštom izlaz skripti koje se pokreću. Na primjer, ako napišete skriptu koja ispisuje liniju "Hello, world" i postavite je da se izvršava preko cron-a, dobićete e-poruku sa linijom "Hello, world" svaki put kada cron pokrene takvu skriptu.

Da biste to izbjegli, na primjer, kada vam ne treba tekst koji ispisuje skripta, morate dodati znakove na kraj reda skripte za cron

> / dev / null 2> & 1

Kompletna linija za cron će izgledati ovako:

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

Preporučujemo da provjerite ispravnost sintakse skripti koje ste postavili da se izvršavaju preko cron-a. Skripte mogu sadržavati grešku, možda neće raditi isto kada se pokreću kroz web server i kroz cron itd. Da biste bili sigurni da će skripta ispravno raditi kroz cron, prvo je provjerite takvom komandom u unix shell:

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

Ako u skripti nema grešaka, vidjet ćete poruku "U script.php nisu otkrivene sintaksičke greške".

Ograničenja

Za programe koji se pokreću preko cron-a, vrijede ista ograničenja resursa kao i za procese koje je pokrenuo korisnik u unix ljusci. TO JE ograničenja na vrijeme izvršavanja programa, broj raspoloživa memorija, ograničenja veličine datoteke i tako dalje.

Vrlo često u sistemima sličnim Linuxu može biti potrebno automatizirati neke rutinske procese. Za to se koriste posebni planeri. Jedan od najpoznatijih od njih je Cron, o čijim će postavkama biti riječi u ovom članku.

Šta je Cron?

Naziv programa je izveden od grčkog "chronos" što znači vrijeme. Što je, zapravo, i logično. Zadatak demona je da u određenim trenucima izvrši naredbe upisane u njemu. Sam proces implementacije zasniva se na provjeri krunskih tablica i njihovom upoređivanju sa i vremenom.

Crontab fajl

Najvažniji element Cron podešavanja je konfiguracioni fajl crontab. Sadrži naredbe za izvršavanje i putanje do skripti. Svi rade kao superkorisnici. Pošto se nalaze u direktorijumu /etc/cron.d, ove datoteke moraju biti konfigurisane tamo.

Za svakog pojedinačnog korisnika na sistemu koristi se posebna crontab datoteka.

Različite distribucije Linuxa koriste vlastite direktorije za pohranu prilagođene postavke... Za RedHat, ovo je var / spool / cron. Na Debianu i Ubuntuu, ovo će biti var / spool / cron / crontabs. I var / spool / cron / tabs u SUSE-u.

Lista naredbi za upravljanje crontab-om

Cron ima skup posebnih direktiva koje se mogu koristiti za kontrolu planera. Moraju se koristiti zajedno sa crontabom. Evo male liste:

  • -u korisničko ime. Postavlja korisnika sa čijim zadacima i postavkama će se izvršavati dalje radnje... Ako izostavimo dati ključ tada će biti postavljen zadani korisnik.
  • -l. Prikazaće trenutnu listu zadataka.
  • -e. Pokreće uređivač za planer zadataka.
  • -r. Uklanja sve postojeće zadatke sa liste.

Format zadatka

Kao što je gore spomenuto, postavljanje Cron-a sastoji se od postavljanja komandi u poseban fajl... Izgleda jednostavan unos koji se sastoji od šest kolona:

  • prvi označava broj minuta. Dostupni raspon je od 0 do 59. Možete koristiti više vrijednosti, raspon i Posebni simboli;
  • druga kolona je sati. Mogu se koristiti vrijednosti od 0 do 23;
  • dalje - dan. Ovdje možete unijeti broj od 1 do 31;
  • četvrti je mesec. Minimalna vrijednost je 1, maksimalna je 12;
  • peta - sedmica. 0 ili 7 odgovara nedjelji;
  • posljednja naredba je sama izvršna datoteka.

Kao što je spomenuto, možete specificirati posebne znakove u datoteci, "*" ili "/". Na primjer, takav unos - 23 * / 2 *** echo "Run" znači da će se svaki paran sat i 23 minuta prikazati natpis "Run".

Karakteristike crontab datoteke

Prilikom postavljanja Cron-a, zapamtite da on ima specifična svojstva koja treba uzeti u obzir prilikom konfiguriranja:

  • svaki fajl mora biti prekinut prazan red, inače se zadnja tačka može zanemariti, a ponekad i cijeli fajl;
  • fajlovi koji se nalaze u direktorijumima sa tačkom u imenu će takođe biti ignorisani od strane planera;
  • hash simboli "#" mogu se koristiti u konfiguracijskim datotekama. Koriste se za označavanje komentarisanih linija. Ovo je vrlo korisno za opisivanje zakazanih zadataka i naredbi.

Dodatne varijable

Prilikom konfigurisanja Cron-a možete koristiti posebne vrijednosti i kratice u naredbama. Na primjer, možete koristiti sljedeću listu da odredite dan u sedmici:

  • ned - nedjelja;
  • pon - ponedjeljak;
  • uto - utorak;
  • srijeda - srijeda;
  • čet - četvrtak;
  • pet - petak;
  • sub - subota.

Mjesecima postoje i odvojeni doslovne vrijednosti- jan, februar, mar, apr, maj, jun, jul, avgust, septembar, oktobar, nov, decembar.

Postoje i zasebne varijable za konfiguriranje Cron-a koje mogu zamijeniti cijele komandne linije:

  • @reboot. Komanda će se pokrenuti svaki put kada se računar pokrene;
  • @godišnje. Ovaj zadatak biće lansiran jednom godišnje. Ekvivalentna numerička notacija može biti sljedeća: 0 0 1 1 *. Njegov sinonim se također može napisati kao @annually;
  • @monthly. Kao što možete pretpostaviti iz imena, ova varijabla pokreće komandu jednom mjesečno. Njegov numerički analog je 0 0 1 * *;
  • @weekly. Ova varijabla će se izvoditi svake sedmice;
  • @dayly. Jednom dnevno;
  • @ponoć. Lansiranje će se održati u ponoć;
  • @hourly. Svaki sat.

Postavljanje Cron-a u Centos 7

Sam proces instalacije i konfiguracije se ne razlikuje mnogo od drugih sličnih Linux distribucija. Prije postavljanja Cron-a na Centos, morate instalirati cronie paket na sistem. Ovo se može uraditi pomoću komande yum install cronie. Da biste kreirali datoteku sa uputstvima, morate pokrenuti u terminalu crontab -e. Sve postavke sistema Cron će biti sačuvan u / var / spool / cron / korisničko ime.

Neki korisni primjeri za kreiranje zadataka koji se često ponavljaju

Cron možete prilagoditi na način da pokrije gotovo sve potrebe svakog korisnika.

  • 00 09-17 * * 1 - 5 / put / do naredbe / krune. Ova komanda automatski će izvršavati zakazanu akciju svakog radnog dana od 9 do 5 sati svake prve minute;
  • 00 9.17 * * * / putanja / do naredbe / krune. U ovom primjeru, naredba se izvršava dva puta dnevno. Prvi u 9, drugi u 5 sati. Znak "*" označava da će se komanda izvršavati svakog dana, mjeseca i godine;
  • Takođe, ne zaboravite na simboličke varijable. Na primjer, @monthly će pokrenuti zadatak svakog mjeseca u prvoj minuti prvog sata prvog dana. @Daily će raditi svaki dan.

MIN SAT DOM PON DOW CMD

Tabela: Crontab polja i važeći rasponi (Linux Crontab sintaksa)

1. Planiranje zadataka za određeno vrijeme

Glavna upotreba cron-a je obavljanje zadataka u određeno vrijeme kao što je prikazano ispod. Ovo će izvršiti skriptu pune rezervne kopije 10. juna u 8:30 ujutro.

Imajte na umu da vremensko polje koristi 24-satni format, tako da je 8 ujutro 8, a 20 popodne 20 sati.

30 08 10 06 * / home / developer / full-backup

  • 30 - 30. minuta
  • 08 - 08 sati
  • 10 - 10. dan
  • * - Svaki dan u sedmici

2. Rasporedite zadatke za češće izvršavanje (na primjer, dva puta dnevno)

Sljedeća skripta koristi dodatnu backup dva puta dnevno svaki dan. Ovaj primjer izvodi inkrementalno sigurnosno kopiranje u 11:00 i 16:00 svaki dan. Vrijednosti razdvojene zarezima u polju označavaju da naredbu treba izvršiti u svako određeno vrijeme.

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

00 - 0. minuta (početak sata) 11, 16 - 11 i 16 sati * - svaki dan * - svaki mjesec * - svaki dan u sedmici

3. Raspored rada u određenom vremenskom intervalu (npr. samo radnim danima)

Ako želite da se podprogrami izvršavaju svaki sat u određenom vremenskom intervalu, koristite sljedeće.

Cron rutina za svaki dan tokom radnog vremena

Ovaj primjer provjerava stanje baze podataka svaki dan (uključujući vikende) tokom radnog vremena od 9 do 18 sati.

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

00 - 0. minuta (početak sata) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (sati) * - svaki dan * - svaki mjesec * - svaki dan u sedmica

Cron rutina za svaki radni dan tokom radnog vremena

Ovaj primjer provjerava status baze podataka svakog radnog dana (osim subote i nedjelje) od 9 do 18 sati.

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

00 - 0. minuta (početak sata) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (sati) * - svaki dan * - svakog mjeseca 1-5 - ponedjeljak, utorak, srijeda, četvrtak i petak (svake sedmice)

4. Kako mogu vidjeti Crontab unose?

Pregledajte trenutne Crontab datoteke korisnika.

Za pregled vaših crontab-l datoteka odozgo račun unix, uradite sledeće.

[email protected]$ crontab -l @godišnje / home / developer / godišnje-održavanje * / 10 * * * * / home / developer / check-disk-space

Pregled root crontab unosa

Prijavite se kao root korisnik (su - root) i pokrenite crontab-l kao što je prikazano ispod.

[email protected]# crontab -l nema crontab za root

Da vidite fajlove drugih korisnika, prijavite se kao root i koristite -u (korisničko ime) -l kao što je prikazano ispod.

[email protected]# crontab -u korisničko ime -l @mjesečno / početna / korisničko ime / mjesečna-backup 00 09-18 * * * / početna / korisničko ime / check-db-status

5. Kako da uredim crontab unose?

Uređivanje trenutnih korisničkih cron zapisa.

Za uređivanje unosa koristite cronab -e kao što je prikazano ispod. Prema zadanim postavkama, trenutni crontab korisnika će biti uređen.

[email protected]$ crontab -e @yearly / home / developer / centos / bin / godišnje-održavanje * / 10 * * * * / home / developer / debian / bin / check-disk-space ~ "/tmp/crontab.XXXXyjWkHw" 2L, 83C

Kada sačuvate datoteku, ona će sačuvati crontab i prikazati sledeću poruku koja vam govori da je crontab uspešno izmenjen.

~ "crontab.XXXXyjWkHw" 2L, 83C napisan crontab: instaliranje novog crontab-a

Uređivanje root crontab unosa

Prijavite se kao root korisnik(su - root) i uradite crontab -e kao što je prikazano ispod.

[email protected]# crontab -e

Uređivanje crontab unosa drugog korisnika

Da uredite tuđi crontab unos Korisnik Linuxa, prijavite se kao root i koristite -u (korisničko ime) -e kao što je prikazano ispod.

[email protected]# crontab -u korisničko ime -e @monthly / home / korisničko ime / fedora / bin / mjesečna-backup 00 09-18 * * * / home / korisničko ime / ubuntu / bin / check-db-status ~ ~ ~ "/ tmp / crontab .XXXXyjWkHw "2L, 83C

6. Izvršavanje Cron-a svake minute

U idealnom slučaju, možda nećete morati da planirate da se cron pokrene svaki minut. Ali razumijevanje ovog primjera pomoći će vam da shvatite druge primjere opisane u ovom članku.

Bash * * * * * CMD

* - označava moguću jedinicu - odnosno svaki minut svakog sata u toku godine. Također, korištenje * direktno se ispostavilo da je više korisna funkcija u sljedećim primjerima.

Označavanje * / 5 u polju minuta znači svakih 5 minuta. Navođenje 0-10 / 2 u polju za minute znači svaka 2 minute u prvih 10 minuta. Dakle, ova konvencija se može koristiti u sva 4 polja.

7. Pokreni pozadinske Cron zadatke svakih 10 minuta

Koristite sljedeće ako želite provjeriti prostor na disku svakih 10 minuta.

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

Ovaj zadatak pokreće navedenu naredbu za provjeru diska svakih 10 minuta tijekom cijele godine. Međutim, možda ćete morati provjeriti samo tokom radnog vremena, ili obrnuto. Gornji primjeri pokazuju kako se to radi.

Umjesto specificiranja vrijednosti u 5 polja, možemo ih specificirati pomoću ključna riječ kao što je prikazano ispod.

Postoji posebnim uslovima kada umjesto 5 polja možete koristiti @ iza koje slijedi ključna riječ - kao što je ponovno pokretanje, ponoć, godišnje, po satu.

Posebne Cron ključne riječi i njihovo značenje

8. Napravite raspored za prvu minutu svake godine koristeći @yearly

Ako želite da se cron zadatak pokrene u prvim minutama svake godine, možete koristiti ključnu riječ @yearly kao što je prikazano ispod. U steku, sistem će obavljati godišnji Održavanje koristeći skriptu godišnjeg održavanja u 00:00 1. januara svake godine.

@yearly / home / developer / red-hat / bin / godišnje-održavanje

9. Pokreni zadatke svakog mjeseca koristeći ključnu riječ @monthly

Slično je kao @yearly iznad. Ali naredba se izvršava mjesečno. Tim će se vratiti u 00:00 svakog prvog u mjesecu.

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

10. Pokreni zadatke svaki dan koristeći @daily

Korištenjem ključne riječi @daily generirat će se dnevnik čišćenja svakog dana u 00:00.

@daily / home / developer / arch-linux / bin / cleanup-logs "dan je počeo"

11. Kako izvršiti Linux naredbu nakon svakog ponovnog pokretanja koristeći @reboot?

Koristeći ključnu riječ @reboot, navedena komanda će se izvršiti svaki put kada se sistem pokrene.

@reboot CMD

13. 12. Kako mogu onemogućiti/preusmjeriti Crontab odlaznu poštu koristeći ključnu riječ MAIL?

Podrazumevano, crontab šalje izlazne zadatke korisniku koji je instalirao zadatak. Ako ih želite preusmjeriti na drugog korisnika, dodajte ili ažurirajte varijablu MAIL u crontab kao što je prikazano ispod.

[email protected]$ crontab -l MAIL = "programer" @godišnje / home / developer / godišnje-održavanje * / 10 * * * * / home / developer / check-disk-space

Ako želite uopće spriječiti slanje pošte, tj. da prestanete slati izlazne crontab datoteke, dodajte ili ažurirajte varijablu MAIL u crontab kao što je prikazano ispod.

13. Kako izvršiti Linux Cron zadatke svake sekunde koristeći Crontab

Ne možete podesiti cron da se pokreće svake sekunde. Zato što je najmanja jedinica cron izvršenja minuta. U tipičnom scenariju, nema potrebe za pokretanjem cron izvršavanja svake sekunde.

14. Određivanje PATH varijable u Crontab

U svim gore navedenim primjerima naznačili smo apsolutni put Linux komande ili shell skripta koju treba izvršiti.

Na primjer, umjesto specificiranja / home / developer / tape-backup, ako želite samo navesti sigurnosnu kopiju trake, dodajte stazu / home / developer u PATH u crontab kao što je prikazano ispod.

[email protected]$ crontab -l PATH = / bin: / sbin: / usr / bin: / usr / sbin: / home / developer @godišnje godišnje održavanje * / 10 * * * * provjera prostora na disku

15. Instaliranje Crontab-a iz Cron datoteke

Umjesto direktno uređivanje crontab datoteke možete dodati sve unose u cron datoteku. Ako datoteka ima ove unose, možete ih preuzeti ili instalirati u cron kao što je prikazano ispod.

Napomena: datoteka cron-file.txt će biti kreirana u vašem crontab-u koja će biti uklonjena prethodni zapisi cron. Zato budite oprezni kada učitavate cron unose iz cron-file.txt:

[email protected]$ crontab -l nema crontab za programera $ cat cron-file.txt @godišnje / home / developer / godišnje-održavanje * / 10 * * * * / home / developer / check-disk-space [email protected]$ crontab cron-file.txt [email protected]$ crontab -l @godišnje / home / developer / godišnje-održavanje * / 10 * * * * / home / developer / check-disk-space

U sistemu Linux automatsko pokretanje zadataka izvodi demon crond, a zakazivanje za automatski start zadatke mogu obavljati ne samo administrator sistema, već i korisnici.

Kako crond radi

Način na koji crond demon radi je jednostavan. Nakon pokretanja (po pravilu, kada se sistem pokrene), demon se budi svake minute i provjerava da li je neki program zakazan za pokretanje u tom trenutku. Ako se takvi programi pronađu, demon ih pokreće i šalje e-poruke korisnicima koji su zakazani za pokretanje.

Planiranje zadataka

Zakazivanje nije teško. Raspored se nalazi u zasebnoj crontab datoteci. Svaki red datoteke sadrži zadatak koji treba pokrenuti u određeno vrijeme.

Format unosa u crontab fajlu

Dio vremena i datuma sastoji se od pet numeričkih polja, odvojenih razmacima, koji određuju kada će zadatak započeti:

Radi lakšeg popunjavanja navedenih polja uvedena su sljedeća pravila:

  • Možete odrediti vrijednosti kao numeričke raspone. Na primjer, 1-3 u polju sati znači 1.00, 2.00 i 3.00 ponoć, a 2-4 u polju dan u sedmici znači utorak, srijedu ili četvrtak.
  • Intervali se mogu podesiti u koracima većim od jedan. Na primjer, da navedete svaki drugi sat počevši od ponoći, postavite interval 0-23, sa korakom od 2, odvojenim kosom crtom: 0-23 / 2
  • Zvjezdica (*) označava cijeli raspon vrijednosti polja, od minimalnih do maksimalnih. Na primjer, u polju dana u mjesecu, zvjezdica označava interval 0-31, u polju dana u sedmici - 0-7
  • Dan u sedmici ili mjesecu može se odrediti sa prva tri slova njegovog (engleskog) naziva

Primjeri datuma i vremena

Nekoliko primjera popunjavanja polja za vrijeme i datum:

0 1 * * * Pokreni posao svaki dan u 1.00 ponoć 30 14 * * 0 Pokreni posao nedjeljom u 14.30 0 23-7 / 2.8 * * * Pokreni posao svaka 2 sata od 23.00 do 7.00 i 8.00 0 12 * 1 mon Počnite zadatak u podne svakog ponedjeljka u januaru svake godine 0 12 2 februar * Počnite zadatak u podne drugog februara svake godine

Komandno polje

Komandno polje je odvojeno od polja vremena i datuma jednim ili više razmaka i proteže se do kraja reda. Naredbe se obrađuju pomoću ljuske / bin / sh.

Na primjer, sljedeći unos crontab poziva da se /usr / sbin / backup program pokreće svaki dan u 1.00 ujutro:

0 1 * * * / usr / sbin / backup

Neke komande (na primjer, mail) zahtijevaju unos sa uređaja stdin... Ovo je označeno znakom procenta (%). Prvi takav znak označava početak standardnog unosa, svaki sljedeći označava prijelom reda.

Uređivanje crontab datoteke

Datoteka crontab se uređuje komandom crontab -e. Moguća su dva pristupa:

  • kreiranje novog fajla sa svim unosima koji bi trebalo da budu uključeni u crontab fajl, a zatim ga zapisivanje na disk pod ovim imenom pomoću naredbe crontab;
  • direktno uređivanje datoteke pomoću naredbe crontab -e.

Snimanje iz datoteke

Da biste upisali sadržaj crontab datoteke iz druge datoteke, morate kreirati ovu drugu datoteku (u uobičajenom uređivač teksta) sa svim unosima od kojih treba da se sastoji crontab datoteka. To može biti, na primjer, sljedeći unos:

0 1 * * * / usr / sbin / backup

Kreiranoj datoteci treba dati odgovarajuće ime, na primjer cron poslovi. Poslije specificirani fajl kreiran, njegov sadržaj mora biti upisan u datoteku crontab naredbom:

~ $ crontab cronjobs

Sadržaj cronjobs datoteke će u potpunosti zamijeniti sadržaj crontab datoteke datog korisnika... Koristeći ovu metodu, svako može uređivati ​​svoj crontab fajl. Superkorisnik ima posebnu dozvolu za uređivanje crontabova drugih korisnika. Uređivanje tuđeg fajla je označeno -u zastavicom. Na primjer, naredbom:

~ # crontab -u oleg cronjobs

cronjobs datoteka je napisana kao crontab datoteka oleg korisnika.

Direktno uređivanje crontab datoteke

Naredba crontab izbjegava operaciju kreiranja u više koraka poseban fajl... Ako unesete komandu crontab sa opcijom -e, možete direktno uređivati ​​datoteku crontab.

Podrazumevano, naredba crontab sa opcijom -e učitava crontab datoteku u editor. Urednik Vi je moćan, iako složen alat popularan iskusni korisnici Unix... Neko ko više voli drugačijeg urednika Xedit, može postaviti odgovarajuću vrijednost varijabla okruženja UREDNIK:

~ $ export EDITOR = xedit

Nakon toga unesite naredbu

uzrokuje otvaranje datoteke crontab u navedenom uređivaču.

Slicno redovni korisnik može uređivati vlastiti fajl crontab, superkorisnik može uređivati ​​crontabove drugih korisnika. Da biste to učinili, koristite naredbu:

~ # crontab -u korisničko-ime -e

Pregled crontab fajla

Da vidite sadržaj crontab datoteke, unesite naredbu:

Superkorisnik može vidjeti crontabove drugih korisnika:

~ # crontab -u korisničko ime -l

Uklanjanje crontab datoteke

Da bi uklonio sadržaj svoje crontab datoteke, korisnik unosi naredbu:

Superkorisnik može obrisati crontabove drugih korisnika.

Top srodni članci