Apie skriptą, atstatantį failus iš backup archyvo

 


 Įvadas

Kiekvienas, kuris naudojasi kompiuteriu, gali susidurti su svarbių duomenų praradimu ar net visišku operacinės sistemos persidiegimu. Nepriklausomai nuo to, ar tai yra asmeninis kompiuteris, ar įmoninė serverio sistema, duomenų atstatymas iš backup yra kritinė operacija. Šiandien mes aptarsime skriptą, kuris leidžia atstatyti failus iš backup archyvo naudojant paprastą ir efektyvią metodiką, ypač naudingą po operacinės sistemos persidiegimo arba duomenų praradimo.

Skripto paskirtis

Šis skriptas yra sukurtas tam, kad atstatytų dingusius ar nesančius failus iš nurodyto backup archyvo į vartotojo namų katalogą. Tai yra naudingas įrankis tiems, kurie nori greitai atkurti prarastus duomenis po nepatogaus incidento, tokių kaip kietojo disko sutrikimas ar netgi visiškas operacinės sistemos persidiegimas. Be to, skriptas yra tęsinys to skripto, kuris buvo naudojamas sukurti tą pačią backup kopiją.

 Skriptas sukurti backup


#!/bin/bash
# Description: Išsaugo pasirinktus failus ir katalogus į backup katalogą ir sukuria archyvą
# URL: https://funkcijos.wordpress.com/2024/05/16/issibastelis-tavo-asmeninio-gyvenimiuko-backupintojas/

# Nustatomi kintamieji
backup_katalogas="/run/media/vaidotak/1f3e2462-ef6f-47a1-a3f8-9300d4bec261/backup/"

# Katalogų ir failų sąrašas archyvavimui
katalogai_archyvavimui=("$HOME/Keepass" "$HOME/.gnupg" "$HOME/bin" "$HOME/Obsidian")
failai_archyvavimui=("$HOME/.bashrc" "$HOME/.bash_aliases" "$HOME/.bash_history" "/etc/X11/xorg.conf.d/10-monitor.conf")

# Funkcija klaidų pranešimams
print_error() {
    echo -e "\e[31mKlaida: $1\e[0m"
}

# Funkcija sėkmės pranešimams
print_success() {
    echo -e "\e[32m$1\e[0m"
}

# Patikrinama ar egzistuoja backup katalogas
if [ ! -d "$backup_katalogas" ]; then
    print_error "Backup katalogas '$backup_katalogas' nerastas"
    exit 1
fi

# Sukuriame tar.gz archyvą su datos ir laiko žyma
timestamp=$(date +%Y-%m-%d_%H-%M-%S)
archive_failas="backup_$timestamp.tar.gz"
archive_path="$backup_katalogas/$archive_failas"

# Renkame visus failus ir katalogus archyvavimui
archyvuoti_elementai=("${failai_archyvavimui[@]}" "${katalogai_archyvavimui[@]}")

# Sukuriame archyvą
tar -czf "$archive_path" -C / "${archyvuoti_elementai[@]}"

if [ $? -eq 0 ]; then
    print_success "Sukurtas archyvas: $archive_path"
else
    print_error "Archyvo sukurimo klaida"
    exit 1
fi

Skriptas atkurti iš backup


#!/bin/bash
# Description: Atstato failus ir katalogus iš nurodyto backup archyvo

# Funkcija sėkmės pranešimams
print_success() {
    echo -e "\e[32m$1\e[0m"
}

# Nurodykite backup katalogą
backup_katalogas="/run/media/vaidotak/1f3e2462-ef6f-47a1-a3f8-9300d4bec261/backup/"

# Patikrinama ar egzistuoja backup katalogas
if [ ! -d "$backup_katalogas" ]; then
    echo "Klaida: Backup katalogas '$backup_katalogas' nerastas"
    exit 1
fi

# Pasirinkti backup failą
PS3="Pasirinkite backup failą (įveskite numerį): "
backup_failai=("$backup_katalogas"/*.tar.gz)
select archive_failas in "${backup_failai[@]}"; do
    if [ -n "$archive_failas" ]; then
        break
    else
        echo "Klaida: Neteisingas pasirinkimas"
    fi
done

# Patvirtinkite atstatymą
read -p "Ar tikrai norite atstatyti failus iš $archive_failas? (taip/ne): " confirm
if [ "$confirm" != "taip" ]; then
    echo "Atstatymas nutrauktas"
    exit 1
fi

# Išpakuoti archyvą į laikiną katalogą
temp_dir=$(mktemp -d)
tar -xzf "$archive_failas" -C "$temp_dir"
if [ $? -ne 0 ]; then
    echo "Klaida išpakuojant archyvą"
    rm -rf "$temp_dir"
    exit 1
fi

# Atstatyti failus
cd "$temp_dir" || exit 1
find . -type f | while read -r item; do
    # Pašaliname ./ iš pradžios ir /home/vaidotak/ iš kelio pradžios, jei jis yra
    relative_path=${item#./}
    relative_path=${relative_path#home/vaidotak/}
    target="$HOME/$relative_path"

    if [ ! -e "$target" ]; then
        mkdir -p "$(dirname "$target")"
        cp -r "$item" "$target"
        print_success "Atstatytas: $target"
    fi
done

# Išvalyti laikiną katalogą
rm -rf "$temp_dir"
print_success "Atstatymas baigtas"

Kaip naudotis skriptu

  1. Nustatykite backup katalogą: Pradžioje nurodote, kur yra jūsų backup failai. Tai gali būti išorinė disko vieta, serveryje esantis FTP serveris arba debesų saugykla.

  2. Pasirinkite backup failą: Skriptas leidžia pasirinkti, kurį konkretų backup archyvą norite naudoti atstatymui.

  3. Patvirtinkite atstatymą: Prieš pradedant atkūrimą, skriptas parodys, ką jis ketina atstatyti. Būtinai patvirtinkite savo sprendimą, kad būtų išvengta nepageidaujamų pasekmių.

  4. Atstatymas: Skriptas išpakuos pasirinktą backup archyvą į laikiną katalogą ir paskui atkurs visus dingusius ar nesančius failus į jūsų namų katalogą.

Privalumai

  • Paprastumas: Skriptas naudoja paprastą naudotojo sąsają (CLI) su aiškiais pranešimais, todėl jis yra lengvai suprantamas net ir tiems, kurie nėra patyrę programuotojai.

  • Efektyvumas: Atstatymas vykdomas automatiškai, o kritiniai duomenys yra saugomi be jokio žmogiško įsikišimo.

  • Lankstumas: Skriptas leidžia pasirinkti konkretų backup archyvą iš sąrašo, taip suteikdamas vartotojui didesnę kontrolę.

Trūkumai

  • Griežtos taisyklės: Skriptas yra pakankamai standartizuotas ir gali neveikti tinkamai, jei backup archyvas yra sudėtingesnės struktūros arba jo pavadinimai neatitinka numatytųjų.

  • Be jokio UI: Nors tai palengvina skripto veikimą, vartotojams, kurie nekenčia komandinės eilutės, gali būti sunku naudotis skriptu be papildomos grafikos sąsajos.

Rekomendacijos

  • Saugumas: Nepamirškite saugumo. Saugokite savo backup failus saugiose vietose, kad būtų galima atkurti duomenis netgi po blogiausių scenarijų.

  • Papildymai: Jei norite pridėti funkcionalumą ar pakeisti skripto elgseną, būtinai konsultuokitės su patyrusiu programuotoju arba įsitikinkite, kad pakeitimai yra saugūs ir efektyvūs.

  • Atstatymas tik dingusiems failams: Skriptas atkuria tik tuos failus, kurie yra prarasti arba dingę, paliekant nepaliestus esamus failus.

Išvada

Atkūrimas iš backup yra svarbi dalis bet kurio duomenų saugumo plano. Šis skriptas, nors ir paprastas, gali būti galingas įrankis norint atkurti prarastus failus greitai ir efektyviai, ypač po operacinės sistemos persidiegimo ar duomenų praradimo. Būtinai turėkite atmintyje, kad jūsų backup strategija yra gerai apgalvota ir reguliariai atnaujinama, kad išvengtumėte nepageidaujamų duomenų praradimų.

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python