Serverovny.cz/Fórum/Jak napsat jednoduchý Bash skript na zálohu souborů?

Jak napsat jednoduchý Bash skript na zálohu souborů?

Mám dotaz ohledně toho, jak bych mohl napsat jednoduchý Bash skript pro zálohu svých souborů. Není mi moc jasné, jak začít, a chtěl bych se ujistit, že to zvládnu správně. Potřebuji zálohovat určité složky na svém serveru, ideálně bych chtěl, aby to bylo automatizované, třeba tak, aby se to spouštělo každou noc. Myslím, že by bylo fajn mít nějaký jednoduchý skript, který pak budu moci upravit podle potřeby. Jaké příkazy bych měl použít a jak to celé poskládat? Vím, že existují různé nástroje na zálohování, ale chtěl bych se naučit psát svůj vlastní skript v Bash. Zajímalo by mě i to, jestli je možné přidat do skriptu nějaké logy pro sledování toho, co se zálohuje. Předem díky za rady a doufám, že mi pomůžete vyhnout se zbytečným chybám!

128 slov
1.3 minut čtení
29. 7. 2021
Zdeňka Prchalová

Takže, záloha souborů v Bash skriptu není žádná věda. Můžeš si napsat jednoduchý skript, co ti vezme pár složek a zkopíruje je na místo, kde budeš mít zálohu. Tady máš něco jako vzor:

  1. Otevři si editor, třeba nano nebo vim, a vytvoř nový soubor s příponou .sh, třeba zaloha.sh.
  2. Napiš do toho něco takovýho:
#!/bin/bash  
   
sourc=$(date +%Y-%m-%d)  
dest=/cesta/k/zaloze/$sourc  
mkdir -p $dest  
cp -r /cesta/k/slozkam/* $dest/  
echo "Záloha provedena na $sourc" \>\> /cesta/k/logu/zaloha.log  
  1. Ulož a zavři editor. Pak nezapomeň udělat skript spustitelným pomocí chmod +x zaloha.sh.
  2. Teď si můžeš nastavit cron job, aby se to spouštělo automaticky. Otevři terminál a napiš crontab -e, pak přidej řádek jako 0 2 * * * /cesta/k/tvemu/zaloha.sh (tohle spustí skript každý den ve 2 ráno).

Takže tímhle způsobem bys měl mít jednoduchou zálohu, co loguje každou provedenou akci. Můžeš to upravit podle sebe, třeba přidat víc složek nebo měnit cesty. Snad to pomůže!

173 slov
1.7 minut čtení
19. 1. 2025
Andrea Brožová

Skripty na zálohu se dělají v Bash dost jednoduše. Můžeš začít třeba takhle: vytvoříš soubor s koncovkou .sh, třeba backup.sh. Pak do něj vlož příkaz #!/bin/bash na začátek, aby se vědělo, že to je Bash skript. Potom si vyber složky, co chceš zálohovat. Můžeš použít rsync, což je super na zálohování, protože ti ukáže i pokrok a případné chyby.

Základní příkaz by mohl vypadat takto:

rsync -av --delete /cesta/ke/složce/ /cesta/k/záloze/

Toto zkopíruje soubory ze zdrojové složky do cílové, a pokud nějaké soubory zmizely ve zdrojové, smaže je to i v cílové. Můžeš přidat nějaký logování pomocí přesměrování výstupu, třeba tak:

rsync -av --delete /cesta/ke/složce/ /cesta/k/záloze/ \>\> /cesta/k/logu/backup.log 2\>&1

To ti zapíše všechny informace do logu. Aby se ti to spouštělo každou noc, přidej úlohu do crontabu pomocí crontab -e. Například pro spouštění ve 2:00 ráno přidej řádek:

0 2 * * * /cesta/k/tvemu/backup.sh

A je to! Můžeš si to pak upravit podle potřeby, třeba přidat víc složek nebo jiný čas. Držím palce!

155 slov
1.6 minut čtení
19. 1. 2025
Richard Horák
Serverovny.cz/Články/Systémové skriptování
Automatizace správy serverů pomocí Bash skriptů – Průvodce pro začátečníky i pokročiléNaučte se, jak pomocí Bash skriptů automatizovat správu serverů a zjednodušit běžné administrativní úkoly. Tento průvodce obsahuje tipy a triky pro ka...
1000 slov
10 minut čtení
9. 10. 2020
Karolína Malá
Přečíst článek
Podobné otázky