Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Novinky: Děkujeme všem návštěvníkům fóra, kteří ochotně radí ostatním. Vaše práce je velmi potřebná a vážíme si jí.

Autor Téma: Spustění skriptu bash v určitý den  (Přečteno 207 krát)

Rado

  • Návštěvník
  • *
  • Příspěvků: 2
  • Karma: +0/-0
    • Zobrazit profil
Spustění skriptu bash v určitý den
« kdy: 05 Prosinec 2018, 19:11:18 »
Ahoj , chtěl jsem se zeptat jak vytvořím spuštění skriptu v přestupném roce, třeba kdybych chtěl spustit jen skript 29 února. Vždy se spustí jen v tento den.

Je to přestupný den, nevím jak to napsat. Poradí mi tady někdo s tím to. Předem všem děkuji :)
« Poslední změna: 05 Prosinec 2018, 19:13:20 od Rado »

juwa2

  • Závislák
  • ****
  • Příspěvků: 2198
  • Karma: +165/-34
    • Zobrazit profil
Re:Spustění skriptu bash v určitý den
« Odpověď #1 kdy: 05 Prosinec 2018, 19:51:57 »
Ke spuštění skriptu použij cron. Nastav tam 29. února.  V letech ve kterých 29. února není, se skript nespustí.
0 0 29 2 *
Pomůcku pro cron formát máš třeba zde https://crontab.guru/
-------------------------------------------------------
Nicméně pro spouštění takovýchto "dlouhodobých" úloh použij raději fcron. Protože pokud bude PC zrovna v tu dobu vypnutý (nebo uspaný), úloha neproběhne a počkáš si minimálně další rok.... Fcron umí na rozdíl od cronu ošetřit i zmeškané úlohy (stejně jako Windowsí Plánovač úloh) a jakákoli zmeškaná úloha tak proběhne nejpozději do hodiny od zapnutí/probuzení PC. Nastavení fcronu a cronu včetně syntaxe je stejné (fcrontab -e). Fcron není v repozitářích, je třeba si ho po stažení http://fcron.free.fr/ zkompilovat a nainstalovat, není to příliš obtížné. Rozbalit stažený archiv, spustit Terminál (nebo se do ní v Terminálu přemístit) ve složce rozbaleného fcronu a zadat:
Kód: [Vybrat]
./configure
make
sudo make install

http://www.linuxfromscratch.org/blfs/view/8.0/general/fcron.html
https://ubuntuforums.org/showthread.php?t=2057486

Dále je třeba přidat do autostartu (rootovského) fcron (daemon) takto. Spustit příkaz:
Kód: [Vybrat]
gedit ~/bin/fcronstart.sh
Otevře se gedit, vložit obsah:
Kód: [Vybrat]
#!/bin/bash
sudo /usr/sbin/fcron
exit 0

dát uložit, gedit zavřít a nastavit souboru spustitelnost:
Kód: [Vybrat]
chmod a+x ~/bin/fcronstart.sh
a přidat (příkazem sudo crontab -e) do rootovského cronu položku:
Kód: [Vybrat]
@reboot (sleep 20; sh $HOME/bin/fcronstart.sh)
Po odhlášení/přihlášení (nebo restartu) zkontroluj (ve Sledování systému) zda ti tam běží proces fcron. Pokud ano, je vše OK.
----------------
Ještě je vhodné, protože každý neumí pracovat s editorem Vi, nastavit si místo něho editor nano se kterým je práce přeci jen jednodušší:
Kód: [Vybrat]
sudo gedit /etc/fcron.conf
otevře se gedit. Změníme poslední řádek na
Kód: [Vybrat]
editor = /bin/nano
uložit, gedit zavřít.
Nano se používá pomocí kláves. zkratek. Upravíme obsah souboru který je v editoru nano otevřený, a potom:
uložit (ctrl+o)
potvrdit (enter)
ukončit nano (ctrl+x)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pokud by měl někdo zájem, klidně napíšu step by step návod na instalaci/použití fcronu  ;)
« Poslední změna: 05 Prosinec 2018, 23:19:16 od juwa2 »

Rado

  • Návštěvník
  • *
  • Příspěvků: 2
  • Karma: +0/-0
    • Zobrazit profil
Re:Spustění skriptu bash v určitý den
« Odpověď #2 kdy: 05 Prosinec 2018, 22:18:04 »
Super díky moc, už to jdu zkoušet :)  ;)