Pokud pracujete s linuxem, pravděpodobně jste již narazili na nástroj cron. Tento nástroj je skvělý pro automatizaci úloh, které chcete spouštět pravidelně. Pomocí crontab můžete definovat úkoly, které se vykonají v určitém časovém intervalu, například jednou za hodinu, každý den, nebo po restartu systému. V tomto článku vám ukážu, jak nastavit a spustit skript podle různých časových plánů.

Co je cron a crontab?

  • cron je démon, který běží na pozadí a spouští úkoly v určený čas.
  • crontab je soubor, ve kterém jsou uloženy všechny naplánované úlohy pro konkrétního uživatele. Každý uživatel může mít svůj vlastní crontab.

Jak nastavit crontab?

Pro otevření crontabu pro úpravy použijte příkaz:

crontab -e

Tento příkaz otevře soubor pro nastavení úloh. Pokud je to poprvé, co používáte crontab, může vám být nabídnut editor (např. vi nebo nano), kde budete moci přidávat nové úkoly.

Základní formát crontab zápisu

Zápis v crontabu má následující formát:

* * * * * /cesta/k/vašemu/skriptu
- - - - -
| | | | |
| | | | +--- Den v týdnu (0 - 7) (neděle je 0 nebo 7)
| | | +----- Měsíc (1 - 12)
| | +------- Den v měsíci (1 - 31)
| +--------- Hodina (0 - 23)
+----------- Minuta (0 - 59)

Příklady

Spuštění skriptu jednou za hodinu

Pokud chcete spustit skript každou hodinu, použijte následující zápis:

0 * * * * /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript se spustí v každou celou hodinu (minuta 0).

Spuštění skriptu každý den ve 2:00 ráno

Pro spuštění skriptu každý den ve 2:00 použijte:

0 2 * * * /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript poběží každý den ve 2:00 ráno.

Spuštění skriptu po restartu systému

Pokud chcete, aby se skript spustil po restartu systému, přidejte do crontabu následující řádek:

@reboot /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript poběží vždy po restartu nebo spuštění systému.

Spuštění skriptu každou neděli v 10:00

Pro spuštění skriptu každou neděli v 10:00 ráno použijte:

0 10 * * 0 /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript poběží každou neděli ve 10:00.

Spuštění skriptu každý první den v měsíci ve 3:00

Pokud chcete spustit skript každého prvního dne v měsíci ve 3:00 ráno, použijte:

0 3 1 * * /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript poběží každého 1. dne v měsíci ve 3:00.

Spuštění skriptu každou minutu

Pokud chcete, aby skript běžel každou minutu, použijte:

* * * * * /cesta/k/vašemu/skriptu

Spuštění skriptu každé 2 hodiny

0 */2 * * * /cesta/k/vašemu/skriptu

Tento zápis znamená, že skript poběží každé 2 hodiny.

Synchronizace souborů

V konkrétním případě jde o soubor /var/log/fail2ban.log

Soubor nejprve zkopírujeme na novou pozici

sudo cp /var/log/fail2ban.log /usr/share/hassio/homeassistant/www/fail2ban.log

Nyní spustíme cron jako správce

sudo crontab -e

A pomocí příkazu rsync budeme soubor pravidelně aktualizovat každých 5 minut

*/5 * * * * rsync -avz /var/log/fail2ban.log /usr/share/hassio/homeassistant/www/fail2ban.log

cron je velmi silný nástroj pro plánování úloh v Unix-like systémech, který vám umožňuje automatizovat různé procesy a úkoly. Pomocí crontab můžete nastavit spouštění skriptů v konkrétních časech, například každý den, po restartu systému, nebo každou hodinu. Mějte na paměti, že správně nastavený crontab vám může ušetřit spoustu času a zjednodušit správu vašeho systému.

Pokud budete mít jakékoliv dotazy nebo potřebujete pomoc s konfigurací, neváhejte se zeptat!

+ ,