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

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

Potřeboval bych trošku pomoct, protože se snažím vymyslet, jak napsat Bash skript, který by mi automaticky zálohoval serverové soubory. Jsem v tomhle úplný nováček a mám pocit, že bych potřeboval nějaké základní informace o tom, jak vůbec takový skript začít psát. Jaké příkazy bych měl použít? Mám se zaměřit na nějaké konkrétní adresáře, nebo to zálohování udělat kompletní? A co se týče plánování, jak bych mohl naplánovat jeho pravidelné spouštění, aby to fungovalo bez mého zásahu? Taky nevím, jak správně nastavit cestu pro uložení těch záloh – existují nějaké osvědčené postupy nebo doporučení? Vím, že existují různé nástroje na zálohování, ale chtěl bych si to zkusit sám a naučit se něco nového. Jaké jsou nejlepší praktiky nebo tipy, které byste mi mohli doporučit? Kdyby někdo měl vzorový skript nebo alespoň ukázku kódu, bylo by to super. Díky moc za pomoc!

140 slov
1.4 minut čtení
31. 5. 2024
Milena Sládková

Zálohování serveru skriptem v Bash je celkem jednoduché. Můžeš použít příkaz tar, což je klasika na archivační soubory. Například, pokud chceš zálohovat adresář /home/user/data, můžeš napsat něco jako:

#!/bin/bash

DATUM=$(date +%Y%m%d)
ZALOHA=/path/to/backup/backup_$DATUM.tar.gz

tar -czf $ZALOHA /home/user/data

Tímhle vytvoříš komprimovaný archiv se zálohou, která bude mít v názvu aktuální datum. Pokud chceš zálohovat víc adresářů, prostě je přidej za sebe do příkazu tar.

Kde ukládat zálohy? Většinou se doporučuje mít je na jiném disku nebo externím úložišti, aby byly chráněny i v případě selhání serveru.

Ohledně plánování, nejlepší volba je cron. Můžeš otevřít cron tabulku příkazem crontab -e a přidat řádek pro denní spuštění skriptu, třeba takhle:

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

To spustí skript každý den ve 2 ráno.

Jinak je dobrý kontrolovat, jestli skript probíhá bez chyb, třeba pomocí logů, do kterých si můžeš zapisovat stav zálohování. A nezapomeň na testování obnovy z těch záloh! To je důležitý krok, abys věděl, že to funguje jak má. Tak hodně štěstí!

155 slov
1.6 minut čtení
19. 1. 2025
Nikola Vaňková

Takže, zálohování serveru skriptem je super nápad. Můžeš začít třeba takhle: vytvoř si skript s názvem "backup.sh" a dej mu spustitelná práva pomocí chmod +x backup.sh. Pak můžeš do něj napsat něco jako:

#!/bin/bash
# Nastav proměnné
SOURCE_DIR="/cesta/k/tvým/souborům"
DEST_DIR="/cesta/k/zálohám"
DATE=$(date +%Y-%m-%d)

# Vytvoření zálohy
rsync -av --delete $SOURCE_DIR $DEST_DIR/backup-$DATE

Tady rsync dělá většinu práce, zkopíruje ti soubory a zachová strukturu. Adresář pro zálohy zvol tak, aby na něj bylo snadno přístupné místo, ideálně na jiném disku nebo externím úložišti.

Pokud chceš skript spouštět pravidelně, nastav si cron job. Otevři crontab pomocí crontab -e a přidej třeba:

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

To znamená, že se to spustí každý den ve 2 ráno. Zvaž taky, že můžeš zálohovat jen důležité adresáře místo celého serveru, abys nezaplnil místo.

Jo a nezapomeň testovat zálohy! Je fajn mít jistotu, že to funguje.

128 slov
1.3 minut čtení
19. 1. 2025
Bohuslav Skála
Serverovny.cz/Články/Automation skripty
Automatizace zálohování serverů pomocí Bash skriptů: Jak na to?Zjistěte, jak jednoduše napsat vlastní Bash skripty pro pravidelné zálohování dat na serverech a minimalizaci rizika ztráty hodnotných informací.
1000 slov
10 minut čtení
27. 2. 2023
Karolína Malá
Přečíst článek
Podobné otázky