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!