From 0b036864507dc520908854131dba255b782196ea Mon Sep 17 00:00:00 2001 From: archos Date: Thu, 27 Jun 2024 20:23:23 +0200 Subject: [PATCH] =?UTF-8?q?p=C5=99=C3=ADd=C3=A1ny=20skripty=20pro=20z?= =?UTF-8?q?=C3=A1lohy=20pomoc=C3=AD=20Rsync?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skripty/full_backup.sh | 34 ++++++++++++++++++++++++++++++++++ skripty/incremental_backup.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 skripty/full_backup.sh create mode 100644 skripty/incremental_backup.sh diff --git a/skripty/full_backup.sh b/skripty/full_backup.sh new file mode 100644 index 0000000..b01e2ec --- /dev/null +++ b/skripty/full_backup.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +# Nastavení proměnných +ZDROJ="/cesta/k/zdrojovému/adresáři" +CIL="/cesta/k/záložnímu/adresáři" +LOG="/cesta/k/logu/zálohování.log" + +# Seznam souborů a adresářů k vyloučení ze zálohování +EXCLUDE_LIST=( + "cache" + "*.tmp" + "node_modules" + "*.log" +) + +# Vytvoření dočasného souboru s vyloučenými položkami +EXCLUDE_FILE="/tmp/exclude.txt" +rm -f "$EXCLUDE_FILE" +for item in "${EXCLUDE_LIST[@]}"; do + echo "$item" >> "$EXCLUDE_FILE" +done + +# Zálohování pomocí rsync s vyloučením nepotřebných souborů a adresářů +rsync -av --delete --exclude-from="$EXCLUDE_FILE" "$ZDROJ" "$CIL" > "$LOG" 2>&1 + +# Výpis stavu zálohy +if [ $? -eq 0 ]; then + echo "Zálohování úspěšně dokončeno: $(date)" >> "$LOG" +else + echo "Zálohování selhalo: $(date)" >> "$LOG" +fi + +# Odstranění dočasného souboru s vyloučenými položkami +rm -f "$EXCLUDE_FILE" diff --git a/skripty/incremental_backup.sh b/skripty/incremental_backup.sh new file mode 100644 index 0000000..c6fb1f9 --- /dev/null +++ b/skripty/incremental_backup.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# Nastavení proměnných +ZDROJ="/cesta/k/zdrojovému/adresáři" +CIL="/cesta/k/záložnímu/adresáři" +LOG="/cesta/k/logu/zálohování.log" + +# Datum a čas +DATUM=$(date +"%Y-%m-%d_%H-%M-%S") + +# Vytvoření adresáře pro zálohu s datem a časem +NOVY_CIL="$CIL/backup_$DATUM" +mkdir -p "$NOVY_CIL" + +# Zálohování pomocí rsync s možností mazání smazaných souborů ve zdrojovém adresáři +rsync -av --delete "$ZDROJ" "$NOVY_CIL" > "$LOG" 2>&1 + +# Výpis stavu zálohy +if [ $? -eq 0 ]; then + echo "Zálohování úspěšně dokončeno: $DATUM" >> "$LOG" +else + echo "Zálohování selhalo: $DATUM" >> "$LOG" +fi + +# Volitelně: Odstranění starých záloh (např. starších než 7 dní) +find "$CIL" -type d -name "backup_*" -mtime +7 -exec rm -rf {} \; >> "$LOG" 2>&1