logo

„crontab“ v Linuxu s příklady

The crontab je seznam příkazů, které chcete spouštět podle pravidelného plánu, a také název příkazu použitého ke správě tohoto seznamu. Crontab je zkratka pro cron table, protože k provádění úloh používá cron plánovače úloh; cron sám je pojmenován po chronos, řeckém výrazu pro čas. cron je systémový proces, který za vás automaticky provede úkoly podle nastaveného plánu. Plán se nazývá crontab, což je také název programu používaného k úpravě tohoto plánu.

Syntaxe Linux Crontab

Linuxový formát Crontab je reprezentován následující syntaxí:



MIN HOUR DOM MON DOW   CMD>

Pojďme si jednotlivá pole rozebrat:

Pole

Popis



Povolená hodnota

MIN (minuta)

Určuje minutu, kdy se příkaz spustí



Pohybuje se od 0 do 59.

HODINA

Označuje hodinu dne, kdy je naplánováno provedení příkazu.

Pohybuje se od 0 do 23.

DOM (den v měsíci)

Určuje den v měsíci pro úkol.

Pohybuje se od 1 do 31.

PO (měsíc)

Označuje měsíc, během kterého bude příkaz proveden.

Liší se od 1 do 12.

DOW (Den v týdnu)

Určuje den v týdnu pro úkol.

Je reprezentován čísly od 0 do 6, kde 0 i 6 odpovídají neděli.

CMD (příkaz)

Představuje skutečný příkaz nebo skript, který se spustí v naplánovanou dobu.

——————

Příklady úloh Cron

1. Naplánování zakázky na určitou dobu

Základní použití cronu je provést úlohu v konkrétním čase, jak je uvedeno níže. Tím se 10. června 08:30 spustí skript Shell Full backup (úplná záloha). Časové pole používá 24hodinový formát. Takže pro 8:00 použijte 8 a pro 20:00 použijte 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30. minuta 08 – 08:00 10 – 10 den 6. – 6. měsíc (červen) * – Každý den v týdnu

2. Chcete-li zobrazit položky Crontab

  • Zobrazit položky Crontab aktuálně přihlášeného uživatele: Chcete-li zobrazit položky Crontab, zadejte crontab -l z vašeho unixového účtu.
  • Zobrazit položky Root Crontab: Přihlaste se jako uživatel root (su – root) a proveďte crontab -l.
  • Chcete-li zobrazit položky crontab jiných uživatelů Linuxu: Přihlaste se do root a použijte -u {uživatelské jméno} -l.

3. Chcete-li upravit položky Crontab Upravte položky Crontab aktuálního přihlášeného uživatele.

Chcete-li upravit položky crontab, použijte crontab -e. Ve výchozím nastavení se tím upraví crontab aktuálně přihlášených uživatelů.

4. Chcete-li naplánovat úlohu na každou minutu pomocí Cronu.

V ideálním případě nemusíte mít požadavek naplánovat práci každou minutu. Ale pochopení tohoto příkladu vám pomůže porozumět dalším příkladům.

* * * * * CMD>

* znamená všechny možné jednotky – tj. každou minutu každou hodinu po celý rok. Více než přímé použití tohoto * vám bude velmi užitečné v následujících případech. Když v poli minut zadáte */5, znamená to každých 5 minut. Když zadáte 0-10/2 v poli minut, znamená to každé 2 minuty během prvních 10 minut. Výše uvedenou konvenci lze tedy použít pro všechna ostatní 4 pole.

5. Chcete-li naplánovat úlohu na více než jednou (např. Dvakrát denně)

Následující skript provádí přírůstkovou zálohu dvakrát denně každý den. V tomto příkladu se každý den v 11:00 a 16:00 spustí zadaný skript shellu přírůstkové zálohy (přírůstková záloha). Hodnota oddělená čárkami v poli určuje, že příkaz musí být proveden po celou uvedenou dobu.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0. minuta (horní část hodiny) 11, 16 – 11 a 16 hodin * – Každý den * – Každý měsíc * – Každý den v týdnu

6. Naplánování úlohy na určité časové období (např. Pouze ve všední dny)

Pokud chcete, aby byla úloha naplánována na každou hodinu v určitém časovém rozmezí, použijte následující.

  • Cron Job každý den během pracovní doby: Tento příklad kontroluje stav databáze každý den (včetně víkendů) během pracovní doby 9:00 – 18:00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0. minuta (horní část hodiny) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Každý den * – Každý měsíc * – Každý den v týdnu
  • Cron Job každý pracovní den během pracovní doby: Tento příklad kontroluje stav databáze každý pracovní den (tj. kromě So a Ne) během pracovní doby 9:00 – 18:00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0. minuta (horní část hodiny) 09-18 – 9:00, 10:00, 11:00, 12:00, 13:00, 14:00, 15:00, 16:00, 17:00, 18:00 * – Každý den * – Každý měsíc 1-5 - Po, Út, St, Čt a Pá (každý všední den)

7. Chcete-li naplánovat úlohu Cron na pozadí na každých 10 minut.

Pokud chcete každých 10 minut kontrolovat místo na disku, použijte následující.

"zednický vzorec"
*/10 * * * * /home/maverick/check-disk-space>

Provádí zadaný příkaz check-disk-space každých 10 minut po celý rok. Ale můžete mít požadavek na provedení příkazu pouze v určitých hodinách nebo naopak. Výše uvedené příklady ukazují, jak tyto věci dělat. Místo zadávání hodnot do 5 polí je můžeme zadat pomocí jediného klíčového slova, jak je uvedeno níže. Existují zvláštní případy, kdy místo výše uvedených 5 polí můžete použít @ následované klíčovým slovem – například restart, půlnoc, rok, hodina. Speciální klíčová slova Cron a jejich význam

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Chcete-li naplánovat úlohu na první minutu každého roku pomocí @yearly

Pokud chcete, aby byla úloha provedena v první minutu každého roku, můžete použít klíčové slovo @yearly cron, jak je uvedeno níže. Tím se provede roční údržba systému pomocí skriptu roční údržby v 00:00 1. ledna po dobu každý rok.

@yearly /home/maverick/bin/annual-maintenance>

9. Chcete-li naplánovat úlohu Cron na začátek každého měsíce pomocí @monthly

Je to podobné jako u @ročního jako výše. Příkaz se však provádí jednou měsíčně pomocí klíčového slova @monthly cron. Tím se spustí zálohování skriptu shellu v 00:00 1. každého měsíce.

@monthly /home/maverick/bin/tape-backup>

10. Naplánování úlohy na pozadí každý den pomocí @daily

Pomocí klíčového slova @daily cron to provede denní čištění souboru protokolu pomocí skriptu shellu cleanup-logs každý den v 00:00.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. Chcete-li provést linuxový příkaz po každém restartu pomocí @reboot

Pomocí klíčového slova @reboot cron to provede zadaný příkaz jednou po každém spuštění počítače.

@reboot CMD>