Android

Planiranje poslova cron s crontabom

SQL 3 For update, Update, Delete, Insert, Create, Drop.mp4

SQL 3 For update, Update, Delete, Insert, Create, Drop.mp4

Sadržaj:

Anonim

Cron je demon zakazivanja koji izvršava zadatke u određenim intervalima. Ti se zadaci nazivaju cron jobs i uglavnom se koriste za automatizaciju održavanja ili administracije sustava.

Na primjer, možete postaviti cron posao za automatizaciju ponavljajućih zadataka poput izrade sigurnosnih kopija baza podataka ili podataka, ažuriranja sustava s najnovijim sigurnosnim zakrpama, provjere potrošnje prostora na disku, slanja e-poruka i tako dalje. Neke aplikacije, poput Drupal-a ili Magento-a, zahtijevaju poslove cron-a za obavljanje određenih zadataka.

Poslovi u radu cron-a mogu se zakazati u minutu, satu, danu mjesecu, mjesecu, danu u tjednu ili bilo kojoj kombinaciji tih podataka.

Što je datoteka Crontab

Crontab (tablica cron) je tekstualna datoteka koja specificira raspored poslova cron. Postoje dvije vrste datoteka crontaba. Datoteke crontaba na razini cijelog sustava i datoteke pojedinačnih korisnika crontab.

Korisničke datoteke crontab-a pohranjuju se prema imenu korisnika, a njihovo mjesto ovisi o operativnim sustavima. U sustavu temeljenom na Red Hat-u, kao što je CentOS, datoteke crontab-a pohranjuju se u imenik /var/spool/cron dok su datoteke Debian i Ubuntu pohranjene u /var/spool/cron/crontabs direktoriju.

Iako možete ručno uređivati ​​datoteke korisnika crontaba, preporučuje se upotreba naredbe crontab .

/etc/crontab i datoteke unutar /etc/cron.d direktorija su crontab datoteke na cijelom sustavu koje mogu uređivati ​​samo administrator sustava.

U većini Linux distribucija skripte možete staviti i u /etc/cron.{hourly, daily, weekly, monthly} direktorije i skripte će se izvršavati svakog hour/day/week/month .

Crontab Sintaksa i operatori

Svaki redak u datoteci korisničkog crontaba sadrži šest polja odvojena razmakom nakon čega slijedi naredba koju treba pokrenuti.

* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)

Prvih pet polja mogu sadržavati jednu ili više vrijednosti, odvojenih zarezom ili rasponom vrijednosti odvojenih crticom.

  • * -Operater zvjezdica znači bilo koju vrijednost ili uvijek. Ako u polju Hour imate simbol zvjezdice, to znači da će se zadatak obavljati svaki sat. , -Zarez zarez vam omogućuje da odredite popis vrijednosti za ponavljanje. Na primjer, ako imate 1, 3, 5 u polju Hour, zadatak će se pokrenuti u 1, 3 i 5 ujutro. - -Hidalni operator vam omogućuje da odredite raspon vrijednosti. Ako imate 1-5 u polju Dan tjedna, zadatak će se izvoditi svakog radnog dana (od ponedjeljka do petka). / -Osoba kosog operatora omogućuje vam da odredite vrijednosti koje će se ponavljati u određenom intervalu između njih. Na primjer, ako u polju Hour imate */4 , to znači da će se radnja izvoditi svaka četiri sata. To je isto što i specificirati 0, 4, 8, 12, 16, 20 . Umjesto zvjezdice prije kosog operatora, možete koristiti i raspon vrijednosti, 1-30/10 znači isto kao 1, 11, 21 .

Datoteke Crontab na cijelom sustavu

Sintaksa datoteka crontaba na cijelom sustavu malo je drugačija od korisničkih crontab-ova. Sadrži dodatno obavezno korisničko polje koje određuje koji će korisnik pokrenuti posao cron.

* * * * * command(s) * * * * * command(s)

Unaprijed definirani makronaredbi

Postoji nekoliko posebnih makronaredbi Cron rasporeda koje se koriste za određivanje uobičajenih intervala. Možete koristiti ove prečace umjesto specifikacije datuma u pet stupaca.

  • @yearly (ili @annually ) - Izvršite zadani zadatak jednom u ponoć ( @annually ) 1. siječnja. Ekvivalentno 0 0 1 1 * . @monthly - Izvršite zadatak jednom mjesečno u ponoć prvog dana u mjesecu. Ekvivalentno 0 0 1 * * . @weekly - Izvršite zadatak jednom tjedno u ponoć u nedjelju. Ekvivalentno 0 0 * * 0 . @daily - Pokreni zadani zadatak jednom dnevno u ponoć. Ekvivalentno 0 0 * * * . @hourly - Izvršite zadani zadatak jednom u početku sata. Ekvivalentno 0 * * * * . @reboot - Pokretanje navedenog zadatka pri pokretanju sustava (vrijeme pokretanja).

Linux Crontab naredba

Naredba crontab omogućava vam instaliranje ili otvaranje datoteke crontab za uređivanje.

Naredbu crontab možete koristiti za pregled, dodavanje, uklanjanje ili izmjenu poslova cron koristeći sljedeće opcije:

  • crontab -e - Uredite datoteku crontab ili je stvorite ako već ne postoji. crontab -l - Prikaz sadržaja datoteke crontaba. crontab -r - Uklonite trenutnu datoteku crontab. crontab -i - Uklonite trenutnu datoteku crontab s promptom prije uklanjanja. crontab -u - Uredi datoteku crontab druge upotrebe. Zahtijeva ovlaštenja administratora sustava.

Naredba crontab otvara datoteku crontab pomoću uređivača navedenog od strane varijabli okoline VISUAL ili EDITOR .

Crontab varijable

Demon cron automatski postavlja nekoliko varijabli okruženja.

  • Zadani put postavljen je na PATH=/usr/bin:/bin . Ako je naredba koju zovete prisutna u cron navedenom putu, možete upotrijebiti apsolutni put do naredbe ili promijeniti varijablu cron $PATH . Ne možete implicitno dodati :$PATH kao što biste učinili s uobičajenom skriptu. Zadana ljuska postavljena je na /bin/sh . Možete postaviti drugu ljusku promjenom varijable SHELL.Cron poziva naredbu iz korisnikovog direktorija. Promjena HOME može se nadjačati postavkama u crontabu. Obavijest e-poštom šalje se vlasniku crontaba. Da biste prebrisali zadana ponašanja, možete upotrijebiti varijablu okruženja MAILTO s popisom (odvojenih zarezima) svih adresa e-pošte na koje želite primati obavijesti e-poštom. Ako je MAILTO definiran, ali prazan ( MAILTO="" ), pošta se ne šalje.

Ograničenja Crontaba

Administratori sustava mogu kontrolirati koji korisnici imaju pristup naredbi crontab pomoću datoteka /etc/cron.deny i /etc/cron.allow . Datoteke se sastoje od popisa korisničkih imena, jednog korisničkog imena po retku.

Prema zadanim postavkama postoji samo /etc/cron.deny datoteka i prazna je, što znači da svi korisnici mogu koristiti naredbu crontab. Ako želite zabraniti pristup naredbama crontab određenom korisniku, dodajte korisničko ime u ovu datoteku.

Ako datoteka /etc/cron.allow postoji samo korisnici koji su navedeni u ovoj datoteci mogu upotrijebiti naredbu crontab .

Ako ne postoji nijedna datoteka, naredbu crontab mogu koristiti samo korisnici s administrativnim povlasticama.

Primjeri poslova Cron

Ispod je nekoliko primjera cron posao koji će vam pokazati kako zakazati zadatak za pokretanje u različitim vremenskim razdobljima.

  • Izvršite naredbu u 15:00 sati svakog dana od ponedjeljka do petka:

    0 15 * * 1-5 command

    Pokrenite skriptu svakih 5 minuta i preusmjerite standardni izlaz na dev null , samo će se standardna pogreška poslati na navedenu adresu e-pošte:

    [email protected] */5 * * * * /path/to/script.sh > /dev/null

    Izvršite dvije naredbe svakog ponedjeljka u 15:00 (koristite operater && između naredbi):

    0 15 * * Mon command1 && command2

    Pokrenite PHP skriptu svake 2 minute i upišite izlaz u datoteku:

    */2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log

    Pokrenite skriptu svaki dan, svakog sata, svaki sat, od 8 do 16 sati:

    00 08-16 * * * /path/to/script.sh

    Izvedite scenarij prvog ponedjeljka svakog mjeseca, u 7 sati ujutro

    0 7 1-7 * 1 /path/to/script.sh

    Izvedite skriptu u 21:15, 1. i 15. svakog mjeseca:

    15 9 1, 15 * * /path/to/script.sh

    Postavljanje prilagođenih HOME , PATH , SHELL i MAILTO varijabli i izvršavanje naredbe svake minute.

    HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command

Zaključak

Naučili ste kako stvoriti cron poslove i zakazati zadatke u određeni datum i vrijeme.

Slobodno ostavite komentar ako imate bilo kakvih pitanja.

kron crontab terminal