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!

Autor Téma: Zálohování dat [Vyřešeno]  (Přečteno 9988 krát)

SDan

  • Aktivní člen
  • *
  • Příspěvků: 209
Zálohování dat [Vyřešeno]
« kdy: 29 Března 2020, 19:45:51 »
Dobrý den.

Mám skript na zálohu dat. Spouštím ho manuálně, nebo via crontab - pokud ntb není vypnutý.

Jak spustit skript po startu ntb tak, aby zálohoval jen tehdy, když poslední záloha je starší X dnů?

Díky moc.
« Poslední změna: 31 Března 2020, 11:19:54 od SDan »

Michal "Tylnesh" Kohútek

  • Administrátor fóra
  • Stálý člen
  • ******
  • Příspěvků: 1070
    • Lords Of Tech
Re:Zálohování dat
« Odpověď #1 kdy: 30 Března 2020, 08:54:50 »
V Crone to mozes nastavit aby sa to vykonavalo kazdych x dni. Vyhovovalo by to? Ak nie, tak v bashi si mozes spravit jednoduchy skript.

0 0 */3 * * ti vykona skript kazdy treti den o polnoci.
https://lordsoftech.com

Registered Linux User #506395

--- Smartphone 0: Apple iPhone 11
--- Smartphone 1: OnePlus 3T - Ubuntu Touch
--- Laptop 0: Apple Macbook Air M1
--- Laptop 1: Lenovo Thinkpad X1 Carbon Gen 3
--- Workstation: Ryzen 7 2700X, RX 5700XT, 32GB RAM
--- Other: Niekolko kusov od kazdeho vydaneho variantu Raspberry Pi

SDan

  • Aktivní člen
  • *
  • Příspěvků: 209
Re:Zálohování dat
« Odpověď #2 kdy: 30 Března 2020, 10:43:09 »
Crontab používám: 30 9 * * 3 /home/xyz/_SCRIPTY/Zaloha_DAT.sh

Problém: Pokud crontab, tak v plánovanou dobu musí být zařízení zapnuto.

Pokud skript Zaloha_DAT.sh zadám jako spustitelný po startu, tak se bude spouštět třeba 3x během dne, vždy když zapnu ntb

Druhá varianta je, že si nevzpomenu a ručně nespustím, tak nemám zálohu.


JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1729
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Zálohování dat
« Odpověď #3 kdy: 30 Března 2020, 10:48:31 »
Existuje i fcron, možná by stálo za to prozkoumat, zda neumožňuje nastavit více podmínek (či jejich vhodnější kombinaci) pro spuštění.

Michal "Tylnesh" Kohútek

  • Administrátor fóra
  • Stálý člen
  • ******
  • Příspěvků: 1070
    • Lords Of Tech
Re:Zálohování dat
« Odpověď #4 kdy: 30 Března 2020, 12:58:28 »
Crontab používám: 30 9 * * 3 /home/xyz/_SCRIPTY/Zaloha_DAT.sh

Problém: Pokud crontab, tak v plánovanou dobu musí být zařízení zapnuto.

Pokud skript Zaloha_DAT.sh zadám jako spustitelný po startu, tak se bude spouštět třeba 3x během dne, vždy když zapnu ntb

Druhá varianta je, že si nevzpomenu a ručně nespustím, tak nemám zálohu.

Tiez mozes po spusteni cronom spustit skript/daemona, ktory cekne ci je zaloha starsia ako 3 dni a ak hej, spusti zalohovanie. Chce to trochu bashu, ale nemal by to byt problem. Ak by si fakt potreboval, tak si mozem s tym pomoct.
https://lordsoftech.com

Registered Linux User #506395

--- Smartphone 0: Apple iPhone 11
--- Smartphone 1: OnePlus 3T - Ubuntu Touch
--- Laptop 0: Apple Macbook Air M1
--- Laptop 1: Lenovo Thinkpad X1 Carbon Gen 3
--- Workstation: Ryzen 7 2700X, RX 5700XT, 32GB RAM
--- Other: Niekolko kusov od kazdeho vydaneho variantu Raspberry Pi

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Zálohování dat
« Odpověď #5 kdy: 30 Března 2020, 13:26:54 »
Existuje i fcron, možná by stálo za to prozkoumat, zda neumožňuje nastavit více podmínek (či jejich vhodnější kombinaci) pro spuštění.

Ano, fcron je řešení, protože řeší situaci když je počítač v "naplánovaném čase" vypnutý/uspaný (zatímco u cronu takováto úloha neproběhne).
Fcron se nastavuje jednoduše a stejně jako cron (fcrontab -e). K dispozici jsou i "speciální" parametry. http://fcron.free.fr/doc/en/fcrontab.5.html

Pro Fcron neexistuje .deb balíček, musí se zkompilovat ze zdrojáku (doporučuji verzi 3.3.0). Není to ale obtížné. Po instalaci je třeba ještě vytvořit fcron usera a nastavit fcronu autospouštění po restartu (fcron musí běžet na pozadí).
Podrobný návod na dotaz, rovněž mohu poskytnout zkompilovaný fcron.
« Poslední změna: 30 Března 2020, 17:11:01 od juwa2 »

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1729
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Zálohování dat
« Odpověď #6 kdy: 30 Března 2020, 16:55:58 »
...
Pro Fcron neexistuje .deb balíček, ...

Existuje, verze 3.0.1-1.3. Viz příloha (tam včetně automatického řešení závislostí).

No a kdo by byl líný přepisovat a hledat, tak pro 64bit je to http://old-releases.ubuntu.com/ubuntu/pool/universe/f/fcron/fcron_3.0.1-1.3_amd64.deb

Možná je někde jinde i novější, dál jsem nehledal.

Taky existuje mcron (viz např. https://www.gnu.org/software/mcron/manual/mcron.html), ten je normálně v repozitářích (sudo apt install mcron), ale nevím, zda vede cesta i tudy.
« Poslední změna: 30 Března 2020, 17:08:03 od JirkaZ »

juwa2

  • Závislák
  • ***
  • Příspěvků: 4935
Re:Zálohování dat
« Odpověď #7 kdy: 30 Března 2020, 17:10:29 »
To je ovšem značně "vousatá" verze...
Navíc je vytvořená pro distra bez systemd, takže např. autostart (fcronu) nebude funkční...

Nejlepší vychytávky jsou právě ve verzi 3.3.0
Deb balík opravdu není, ale jak jsem psal, kompilace je snadná, včetně instalace jsou to tři příkazy...
« Poslední změna: 30 Března 2020, 17:23:00 od juwa2 »

JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1729
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Zálohování dat
« Odpověď #8 kdy: 30 Března 2020, 17:15:58 »
To je ovšem značně "vousatá" verze...
Nejlepší vychytávky jsou právě ve verzi 3.3.0
Deb balík opravdu není, ale jak jsem psal, kompilace je snadná, včetně instalace jsou to tři příkazy...

Jo. To bys nesměl před chvílí přepsat ten překlep z 3.0.3 na 3.3.0... Minulost zatím měnili jen v 1984...

SDan

  • Aktivní člen
  • *
  • Příspěvků: 209
Re:Zálohování dat
« Odpověď #9 kdy: 31 Března 2020, 11:14:25 »
Vyřešil jsem to takhle:
Kód: [Vybrat]
#!/bin/sh

# Určení proměnných
x=$(date --reference=/home/xyz/ZALOHY_DAT/Zaloha.tar +%s)
y=$(date +%s)
z=604800               # 7 dní = 7*24*60*60 = 604800 vteřin
rozdil=$(($y - $x))    #vypocet rozdílu dne zálohování a datumu poslední zálohy

if(($rozdil>$z)) ; then

# Vytvoreni seznamu nainstalovanych balicku
dpkg --get-selections > /home/xyz/_SCRIPTY/Moje_instalace

#Přejmenování staré zálohy
mv /home/xyz/ZALOHY_DAT/Zaloha.tar /home/xyz/ZALOHY_DAT/Zaloha_$(date --reference=/home/xyz/ZALOHY_DAT/Zaloha.tar +%F).tar

#Vytvoreni zalohy dulezitych dat
tar -cvf Zaloha.tar /etc/apt/*.* --exclude hpli* --exclude ...... . 2>chyby_tar.log
echo "$(date): Nová záloha provedena" >> Zaloha.log

#Kopie zalohy dulezitych dat do adresare ZALOHY_DAT
mv -v Zaloha.tar ZALOHY_DAT

else
echo "$(date): Záloha není potřeba" >> Zaloha.log
fi


JirkaZ

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 1729
  • Dlouholetý uživatel Linuxu a open source obecně.
Re:Zálohování dat [Vyřešeno]
« Odpověď #10 kdy: 31 Března 2020, 11:31:41 »
Kolik těch dat je a jak moc a jak často se mění?

Pokud je u všech tří bodů odpověď "dost" popř. "hodně", tak bych místo tar zvážil rsync. Jde o inkrementální způsob zálohování a může ušetřit hodně času.

No a nebo se to prostě dá rovnou porovnat.

SDan

  • Aktivní člen
  • *
  • Příspěvků: 209
Re:Zálohování dat [Vyřešeno]
« Odpověď #11 kdy: 31 Března 2020, 11:45:04 »
Primárně jsem chtěl vyřešit test na stáří zálohy. A to se mi povedlo. Záloha v *.tar mi vyhovuje.

 

Provoz zaštiťuje spolek OpenAlt.