úvod
V systéme Linux je nazývaný démon nazvaný cron, ktorý sa používa na pravidelné spúšťanie procesov.
Spôsob, ako to robí, je skontrolovať určité priečinky vo vašom systéme, aby sa skripty spustili. Napríklad existuje priečinok s názvom /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly a /etc/cron.monthly. K dispozícii je aj súbor s názvom / etc / crontab.
V predvolenom nastavení môžete jednoducho umiestniť skripty do príslušných priečinkov, aby ste ich spustili v pravidelných intervaloch.
Napríklad otvorte okno terminálu (stlačením CTRL, ALT a T) a spustite nasledujúci príkaz ls :
ls / etc / cron *
Zobrazí sa zoznam programov alebo skriptov, ktoré sa spúšťajú hodinovo, denne, týždenne a mesačne.
Problém s týmito zložkami je, že sú trochu nejasné. Napríklad denne znamená, že skript sa bude spúšťať raz denne, ale nemáte žiadnu kontrolu nad časom, počas ktorého sa skript spustí počas daného dňa.
To je miesto, kde prichádza súbor crontab.
Úpravou súboru crontab môžete získať skript alebo program na spustenie presného dátumu a času, kedy chcete spustiť. Napríklad môžete zálohovať súbory každú noc o 18:00.
oprávnenie
Príkaz crontab vyžaduje, aby používateľ mal oprávnenie na úpravu súboru crontab. Existujú v podstate dva súbory, ktoré sa používajú na spravovanie povolení crontab:
- /etc/cron.allow
- /etc/cron.deny
Ak súbor /etc/cron.allow existuje, používateľ, ktorý chce upraviť súbor crontab, musí byť v tomto súbore. Ak súbor cron.allow neexistuje, ale existuje súbor /etc/cron.deny, potom používateľ nesmie existovať v tomto súbore.
Ak existujú oba súbory, súbor /etc/cron.allow prepíše súbor /etc/cron.deny.
Ak neexistuje žiadny súbor, záleží na konfigurácii systému, či používateľ môže upraviť crontab.
Používateľ root môže vždy upravovať súbor crontab. Pomocou príkazu su môžete prepnúť na používateľa root alebo na príkaz sudo spustiť príkaz crontab.
Úprava súboru Crontab
Každý používateľ, ktorý má povolenia, môže vytvoriť vlastný súbor crontab. Príkaz cron v podstate hľadá existenciu viacerých súborov crontab a prechádza cez všetky.
Ak chcete skontrolovať, či máte súbor crontab, spustite nasledujúci príkaz:
crontab -l
Ak nemáte súbor crontab, zobrazí sa správa "no crontab for
Ak chcete vytvoriť alebo upraviť súbor crontab, spustite nasledujúci príkaz:
crontab -e
V predvolenom nastavení, ak nie je vybratý predvolený editor, budete vyzvaní, aby ste vybrali predvolený editor, ktorý chcete použiť. Osobne sa mi páči, že používam nano, pretože je pomerne jednoduchý a používa sa z terminálu.
Otvorený súbor má veľa informácií, ale kľúčovou časťou je príklad tesne pred koncom časti komentárov (komentáre sú označené čiarami začínajúcimi znakmi #).
príkaz # mh dom mon dow
0 5 * * 1 tar -zcf /var/backups/home.tgz / domov /
Na každom riadku súboru crontab sa nachádza 6 častí informácií:
- Minúta dňa, kedy má príkaz bežať (m)
- Hodina dňa, kedy má príkaz behať (h)
- Deň v mesiaci, v ktorom má príkaz spustiť (dom)
- Mesiac spustenia príkazu (mon)
- Deň v týždni je spustený príkaz (dow)
- Príkaz
Pre každú položku (okrem príkazu) môžete určiť zástupný znak. Pozrite sa na nasledujúci príklad riadku crontab:
30 18 * * * tar -zcf /var/backups/home.tgz / home /
Čo hovorí vyššie uvedený príkaz, je 30 minút, 18 hodín a každý deň, mesiac a deň v týždni spustiť príkaz zip a tar domovský adresár do priečinka / var / backups.
Ak chcete dostať príkaz na spustenie 30 minút za každú hodinu, môžem spustiť nasledujúci príkaz:
30 * * * * príkaz
Ak chcete dostať príkaz na spustenie každú minútu okolo 18 hodín, môžem spustiť nasledujúci príkaz:
* 18 * * * príkaz
Preto musíte byť opatrní pri nastavovaní príkazov crontab.
Napríklad:
Príkaz * * * 1 *
Vyššie uvedený príkaz by bežal každú minútu každej hodiny každého dňa každého januárového týždňa. Pochybujem, že to je to, čo chcete.
Ak chcete spustiť príkaz o 5 hod. Dňa 1. januára, zadáte nasledujúci príkaz do súboru crontab:
0 5 1 1 * príkaz
Ako odstrániť súbor Crontab
Väčšinu času nechcete odstrániť súbor crontab, ale možno budete chcieť odstrániť niektoré riadky z súboru crontab.
Ak však chcete odstrániť súbor crontab používateľa, spustite nasledujúci príkaz:
crontab -r
Bezpečnejší spôsob, ako to urobiť, je spustiť nasledujúci príkaz:
crontab -i
To si kladie otázku: "Si si istý?" pred odstránením súboru crontab.