Serverovny.cz/Fórum/Jak napsat Bash skript na automatické zálohování serverů?

Jak napsat Bash skript na automatické zálohování serverů?

Zdravím všechny, chtěl bych se zeptat, jak vlastně napsat Bash skript, který by mi pomohl s automatickým zálohováním serverů. Jsem začátečník a mám s tím problém, protože nevím, kde začít. Mám několik serverů a rád bych nastavil něco, co by pravidelně zálohovalo důležitá data, ale nevím, jak to udělat efektivně. Jaké příkazy v Bash bych měl použít? Je lepší použít rsync nebo tar pro zálohování? A co plánovač úloh, jako je cron? Jak ho správně nastavit, aby se zálohy spouštěly automaticky každý den? Potřeboval bych nějaké tipy na strukturu skriptu a jak správně definovat cesty k souborům a adresářům, které chci zálohovat. A co třeba zabezpečení - jak zajistit, aby byly zálohy chráněny před neoprávněným přístupem? Máte někdo zkušenosti s tímto typem skriptu? Jaké máte doporučení ohledně logování záloh a případných chyb? Každý příspěvek mi pomůže, díky!

137 slov
1.4 minut čtení
20. 12. 2024
Jindřich Procházka

Takže k automatickému zálohování serverů v Bash skriptu. Můžeš použít rsync, je na to super, protože dělá inkrementální zálohy a zbytečně nepřenáší už existující soubory. Takže stačí napsat skript, kde definuješ zdrojový a cílový adresář. Příklad by mohl vypadat takhle:

#!/bin/bash

date=$(date +%Y%m%d)
src=/cesta/k/tvym/datam/
dest=/cesta/k/zaloze/$date/

mkdir -p $dest
rsync -av --delete $src $dest

Tohle ti vytvoří adresář se jménem podle data a zkopíruje tam data. Pak máš pravdu, cron je skvělý na plánování úloh. Otevři crontab pomocí crontab -e a přidej řádek jako:

0 2 * * * /cesta/k/tvym/skriptu/zaloha.sh

Tím se ti záloha spustí každý den ve 2:00 ráno. Co se týče zabezpečení, je dobré nastavit správná oprávnění pro skript a cílovou složku, třeba pomocí chmod 600 a chmod 700, aby tomu nikdo nerušil přístup.

A pro logování můžeš přesměrovat výstup skriptu do souboru s příkazem \>\> /cesta/k/logu/zaloha.log 2\>&1, takže budeš mít přehled o tom, co se děje. Případné chyby nebo úspěchy si tak hezky zaznamenáš.

Snad to pomůže! Držím palce.

150 slov
1.5 minut čtení
19. 1. 2025
David Moravec

Pokud chceš napsat Bash skript na zálohování, tak začni s rsync. Je to super nástroj, který ti umožní efektivně synchronizovat soubory mezi servery nebo je zálohovat na jiný disk. Můžeš ho použít třeba takhle:

#!/bin/bash

date=$(date +%Y-%m-%d)
backup_dir="/cesta/k/zaloze/$date"
mkdir -p "$backup_dir"

rsync -avz /cesta/k/souborum/ $backup_dir/

Tímhle vytvoříš adresář s datem a zkopíruješ tam soubory. Co se týče taru, tak ten je fajn na tar.gz archivy, ale pro jednoduché zálohování je rsync lepší.

A teď ten cron. Otevři si crontab pomocí crontab -e a přidej tenhle řádek, aby se to spouštělo každý den v 2:00:

0 2 * * * /cesta/k/tvemu/skriptu.sh \> /cesta/k/logu/zaloha.log 2\>&1

To zajistí, že skript se spustí a log se bude ukládat do souboru. Měj na paměti zabezpečení – zálohy by měly být na místě, kam mají přístup jen oprávnění uživatelé. Můžeš použít chmod pro omezení přístupu k adresářům se zálohami.

Logování je důležitý, takže se ujisti, že máš nějaký mechanismus, který ti zapíše případné chyby – to už zahrnuješ do toho cron řádku.

Pokud tohle dodržíš, měl bys mít docela slušný základ. Nezapomeň testovat, jestli zálohy fungují a jestli se dají obnovit!

174 slov
1.7 minut čtení
19. 1. 2025
Pavla Čermáková
Serverovny.cz/Články/Programování skriptů
Automatizace správy serverů pomocí Bash skriptováníNaučte se, jak využít Bash skripty k automatizaci úloh správy serverové infrastruktury a zefektivnění administrace. Objevte sílu skriptování a usnadně...
1000 slov
10 minut čtení
5. 11. 2024
Markéta Hájková
Přečíst článek
Podobné otázky