Skip to main content

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

Anonim

Démon v systéme Linux sa nazýva cron beží v pravidelných intervaloch. Kontroluje určité priečinky v systéme, aby sa skripty spustili v sérii priečinkov vrátane súborov /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.

Umiestnenie skriptov do priečinkov Cron

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 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, denná znamená, že skript 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ť.

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á príslušné povolenia, môže vytvoriť vlastný súbor crontab. Príkaz cron v podstate hľadá všetky súbory crontab a prechádza každým z nich.

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 po systém, 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

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 # m h 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 /

Po 30 minútach, 18 hodinách a akýkoľvek deň, mesiac a deň v týždni táto položka crontab zips a tar domovský adresár do priečinka / var / backups.

Ak chcete dostať príkaz na spustenie za 30 minút za každú hodinu, spustite nasledujúci príkaz:

30 * * * * príkaz

Ak chcete príkaz spustiť každú minútu o šestnásť hodín, spustite nasledujúci príkaz:

* 18 * * * príkaz

Preto musíte byť opatrní pri nastavovaní príkazov crontab.

Napríklad:

Príkaz * * * 1 *

Tento príkaz bude spustený každú minútu každej hodiny každého dňa každého januárového týždňa.

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

Operačný systém požiada o overenie skôr, ako odstráni súbor crontab.