Otázka: Jak mohu spustit určitý skript Shell v určitých intervalech v Linuxu pomocí úlohy cron? Uveďte příklady s použitím různých časových období.
Odpověď: Crontab lze použít k naplánování úlohy, která běží na určitém interním. Zde uvedený příklad ukazuje, jak spustit skript shellu backup.sh pomocí různých intervalů.
Nezapomeňte si také přečíst náš předchozí článek o crontab, který obsahuje 15 praktických příkladů a také vysvětluje @monthly, @daily, .. tagy, které můžete použít ve svém crontab.
1. Proveďte úlohu cron každých 5 minut
První pole je pro minuty. Pokud do tohoto pole zadáte *, spustí se každou minutu. Pokud zadáte */5 v 1. poli, spustí se každých 5 minut, jak je uvedeno níže.
*/5 * * * * /home/ramesh/backup.sh
Poznámka: Stejným způsobem použijte */10 na každých 10 minut, */15 na každých 15 minut, */30 na každých 30 minut atd.
2. Proveďte úlohu cron každých 5 hodin
Druhé pole je na hodiny. Pokud do tohoto pole zadáte *, spustí se každou hodinu. Pokud zadáte */5 do 2. pole, spustí se každých 5 hodin, jak je uvedeno níže.
0 */5 * * * /home/ramesh/backup.sh
Poznámka: Stejným způsobem použijte */2 pro každé 2 hodiny, */3 pro každé 3 hodiny, */4 pro každé 4 hodiny atd.
3. Proveďte úlohu každých 5 sekund
Cron úlohu nelze použít k naplánování úlohy v sekundových intervalech. tj. nemůžete naplánovat spouštění úlohy cron každých 5 sekund. Alternativou je napsat shellový skript, který v něm používá příkaz „sleep 5“.
Vytvořte skript shellu every-5-seconds.sh pomocí bash while loop, jak je ukázáno níže.
$ cat every-5-seconds.sh #!/bin/bash while true do /home/ramesh/backup.sh sleep 5 done
Nyní spusťte tento shell skript na pozadí pomocí nohup, jak je znázorněno níže. Skript se bude nadále spouštět i po odhlášení z relace. Toto spustí váš skript backup.sh shell každých 5 sekund.
$ nohup ./every-5-seconds.sh &
4. Proveďte úlohu každý 5. pracovní den
Tento příklad není o plánování „každých 5 dní“. Ale to je pro plánování „každý 5. den v týdnu“.
5. pole je DOW (den v týdnu). Pokud do tohoto pole zadáte *, bude se spouštět každý den. Chcete-li spouštět každý pátek, zadejte do tohoto pole buď 5 z pá.
Následující příklad spouští backup.sh každý pátek o půlnoci.
0 0 * * 5 /home/ramesh/backup.sh (or) 0 0 * * Fri /home/ramesh/backup.sh
Můžete buď uživatelské číslo, nebo odpovídající třípísmennou zkratku pro den v týdnu, jak je uvedeno níže.
- 0=Slunce
- 1=Po
- 2=Úterý
- 3=St
- 4=Čt
- 5=Pá
- 6=So
Poznámka: Zvykněte si používat Pá místo 5. Upozorňujeme, že číslo začíná 0 (nikoli 1) a 0 je pro Ne (ne Po).
5. Proveďte úlohu každých 5 měsíců
Neexistuje žádný přímý způsob, jak říci „každých 5 měsíců“, místo toho musíte určit, ve kterých konkrétních měsících chcete úlohu spustit. Pravděpodobně budete chtít spustit úlohu 5. měsíc (květen) a 10. měsíc (říjen).
Čtvrté pole je pro měsíce. Pokud do tohoto pole zadáte *, spustí se každý měsíc. Chcete-li spustit pro konkrétní měsíc, musíte zadat číslo, které odpovídá měsíci. Chcete-li například spustit úlohu v květnu a říjnu, měli byste zadat 5,10 (nebo) můžete jednoduše použít 3písmennou zkratku měsíce a zadat květen, říjen.
Třetí pole je pro DOM (Den v měsíci). Pokud do tohoto pole zadáte *, spustí se každý den v měsíci. Pokud v tomto měsíci zadáte 1, spustí se 1. den v měsíci.
Následující příklad spouští backup.sh dvakrát ročně. tj. 1. května o půlnoci a 1. října o půlnoci.
0 0 1 5,10 * /home/ramesh/backup.sh (or) 0 0 1 May,Oct * /home/ramesh/backup.sh
Poznámka: Nedělejte chybu, když do 4. pole uvedete 5-10, což znamená od 5. měsíce do 10. měsíce. Pokud chcete pouze 5. a 10. měsíc, měli byste použít čárku.