From a0c025f1c6997b574dcf257256b58c3a21cdefc1 Mon Sep 17 00:00:00 2001 From: archos Date: Thu, 27 Jun 2024 22:11:31 +0200 Subject: [PATCH] aktualizace incremental_backup.sh --- skripty/incremental_backup.sh | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/skripty/incremental_backup.sh b/skripty/incremental_backup.sh index 6ceb2d3..fada793 100644 --- a/skripty/incremental_backup.sh +++ b/skripty/incremental_backup.sh @@ -3,6 +3,21 @@ # Nastavení proměnných ZDROJ="/cesta/k/zdrojovému/adresáři" CIL="/cesta/k/záložnímu/adresáři" +POSLEDNI_ZALOHA=$(ls -td $CIL/backup_* | head -1) + +# Seznam souborů a adresářů k vyloučení ze zálohování +EXCLUDE_LIST=( + "cache" + "*.tmp" + "node_modules" + "*.log" +) + +# Sestavení příkazů --exclude pro rsync +EXCLUDES=() +for item in "${EXCLUDE_LIST[@]}"; do + EXCLUDES+=("--exclude=$item") +done # Datum a čas DATUM=$(date +"%Y-%m-%d_%H-%M-%S") @@ -11,8 +26,12 @@ DATUM=$(date +"%Y-%m-%d_%H-%M-%S") 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" +# Kontrola poslední zálohy a použití --link-dest pro inkrementální zálohy +if [ -n "$POSLEDNI_ZALOHA" ]; then + rsync -av --delete --link-dest="$POSLEDNI_ZALOHA" "${EXCLUDES[@]}" "$ZDROJ/" "$NOVY_CIL/" +else + rsync -av --delete "${EXCLUDES[@]}" "$ZDROJ/" "$NOVY_CIL/" +fi # Výpis stavu zálohy if [ $? -eq 0 ]; then