Serverovny.cz/Fórum/Jak mám napsat Bash skript pro zálohování dat na serveru?

Jak mám napsat Bash skript pro zálohování dat na serveru?

Potřeboval bych poradit, jak na to napsat Bash skript, který mi pomůže se zálohováním dat na serveru. Mám tam několik důležitých souborů a rád bych je pravidelně ukládal někam jinam, abych je měl v bezpečí. Třeba každý den nebo co pár dní, to by bylo ideální. Zajímalo by mě, jak začít, co všechno bych měl vzít v úvahu při psaní takového skriptu. Jaké příkazy by byly nejlepší použít a jestli bych měl myslet i na nějaké logy, abych viděl, jestli zálohování proběhlo úspěšně. Taky bych chtěl vědět, jestli je dobré používat nějaké externí úložiště nebo stačí záloha na jiném disku na stejném serveru. A co cronjob? Jak ho nastavit, aby se skript spouštěl automaticky? Bude potřeba mít práva administrátora, nebo to zvládnu i s uživatelským účtem? Kdyby mi někdo mohl poskytnout nějaký základní příklad nebo nasměrovat mě ke správným informacím, moc by mi to pomohlo. Díky moc!

147 slov
1.5 minut čtení
27. 6. 2021
Antonín Kopecký

Zálohování dat skriptem v Bash je fajn nápad. Můžeš začít tím, že si vytvoříš jednoduchý skript, co zkopíruje tvoje důležité soubory na jinou lokaci. Například:

#!/bin/bash

date=$(date +%Y%m%d)
backup_dir=/cesta/k/zaloze/$date
mkdir -p $backup_dir
cp -r /cesta/k/tvym/souborum/* $backup_dir/

echo "Záloha proběhla úspěšně na $date" \>\> /cesta/k/logu/zaloha.log

Tady to udělá zálohu do složky s datem, což se hodí pro přehlednost. S těmi logy máš pravdu, je dobrý mít nějakou informaci o tom, kdy a co se zálohovalo.

Co se týká umístění záloh, pokud chceš byt v bezpečí, ideálně bys měl zálohovat na externí úložiště nebo na jiný server. Ale když nemáš jinou možnost, tak jiný disk na stejném serveru taky stačí.

Pro automatické spouštění skriptu můžeš použít cron. Otevři terminál a napiš crontab -e a tam přidej řádek jako 0 2 * * * /cesta/k/tvemu/skriptu.sh, což znamená, že se skript spustí každý den ve 2 ráno.

Práva administrátora nepotřebuješ, pokud zálohuješ jen svoje soubory a máš k nim přístup. Takže to zvládneš i jako běžný uživatel.

153 slov
1.5 minut čtení
22. 6. 2024
Bohumil Dubský

Zálohování dat na serveru můžeš udělat dost jednoduše. Nejprve si vytvoř skript – třeba v souboru zaloha.sh. V tomhle skriptu použij příkaz rsync, což je super na zálohování, protože ti ukáže, co se změnilo. Tady máš jednoduchý příklad:

#!/bin/bash  
DATUM=$(date +%Y%m%d)  
ZDROJ="/cesta/k/tvym/souborum"  
CIL="/cesta/k/zaloze/$DATUM"  
mkdir -p "$CIL"  
rsync -av --delete "$ZDROJ/" "$CIL/"  

Tohle vytvoří složku s datem zálohy a kopíruje soubory. Můžeš přidat logovací mechanismus, třeba takhle:

echo "Záloha $DATUM proběhla úspěšně" \>\> /cesta/k/logu/zaloha.log  

Teď k automatizaci. Použij cron, což je plánovač úloh v Linuxu. Otevři terminál a napiš crontab -e. Pak přidej řádek jako:

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

To spustí skript každý den ve 2 ráno. Co se týče práv, většinou nepotřebuješ administrátorský účet, pokud zálohuješ do svých vlastních složek. Externí úložiště je fajn pro bezpečnost, ale záloha na jiném disku na stejném serveru může být taky dobrá, pokud ten disk není přímo připojený k systému.

Tak snad to pomůže! Drž se a měj zálohy v pořádku.

175 slov
1.8 minut čtení
18. 4. 2023
Petra Kubíčková
Serverovny.cz/Články/Skriptovací jazyky
Automatizace zálohování serverových dat pomocí Bash skriptůJak napsat a implementovat Bash skript pro pravidelnou automatizaci zálohování důležitých dat na serveru.
1000 slov
10 minut čtení
3. 10. 2020
Markéta Hájková
Přečíst článek
Podobné otázky