Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Rado 05 Prosince 2018, 19:11:18

Název: Spustění skriptu bash v určitý den
Přispěvatel: Rado 05 Prosince 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 :)
Název: Re:Spustění skriptu bash v určitý den
Přispěvatel: juwa2 05 Prosince 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  ;)
Název: Re:Spustění skriptu bash v určitý den
Přispěvatel: Rado 05 Prosince 2018, 22:18:04
Super díky moc, už to jdu zkoušet :)  ;)