Ako upraviť súbor Linux Crontab na plánovanie úloh

ú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:

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 ", inak sa zobrazí váš súbor crontab (táto funkcia sa líši od systému k systému, niekedy sa nezobrazuje nič a inokedy sa zobrazí " neupravujte tento súbor ").

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í:

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.