Weboldal keresés

rdiff-backup – Távoli növekményes biztonsági mentési eszköz Linuxhoz


Az rdiff-backup egy hatékony és könnyen használható Python-szkript helyi/távoli növekményes biztonsági mentéshez, amely bármely POSIX operációs rendszeren működik, például Linux, Mac OS X vagy Cygwin. Egyesíti a tükör és az inkrementális biztonsági mentés figyelemre méltó tulajdonságait.

Lényeges, hogy megőrzi az alkönyvtárakat, fejlesztői fájlokat, merev hivatkozásokat és olyan kritikus fájlattribútumokat, mint az engedélyek, az uid/gid tulajdonjog, a módosítási idők, a kiterjesztett attribútumok, az ACL-ek és az erőforrás-elágazások. Sávszélesség-hatékony módban tud működni egy vezetéken keresztül, hasonlóan, mint a népszerű rsync biztonsági mentési eszköz.

Az rdiff-backup biztonsági másolatot készít egyetlen könyvtárról a másikra egy hálózaton keresztül SSH használatával, ami azt jelenti, hogy az adatátvitel titkosított, így biztonságos. A célkönyvtár (a távoli rendszeren) a forráskönyvtár pontos másolatát adja, azonban az extra fordított különbségek a célkönyvtár egy speciális alkönyvtárában tárolódnak, lehetővé téve a régebben elveszett fájlok helyreállítását.

Függőségek

Az rdiff-backup használatához Linux alatt a következő csomagokat kell telepítenie a rendszerére:

  • Python v2.2 vagy újabb
  • librsync v0.9.7 vagy újabb
  • A pylibacl és a pyxattr Python modulok nem kötelezőek, de szükségesek a POSIX hozzáférés-vezérlési listához (ACL), illetve a kiterjesztett attribútumok támogatásához.
  • Az rdiff-backup-statistics használatához Python v2.4 vagy újabb verzió szükséges.

Az rdiff-backup telepítése Linux alatt

Fontos: Ha hálózaton keresztül működik, akkor mindkét rendszert telepítenie kell az rdiff-backup parancsot, lehetőleg az rdiff-backup mindkét telepítésének pontosan meg kell lennie. ugyanaz a verzió.

A szkript már megtalálható a főbb Linux disztribúciók hivatalos tárolóiban, egyszerűen futtassa az alábbi parancsot az rdiff-backup és függőségei telepítéséhez:

Rdiff-backup telepítése Ubuntun

Az Rdiff-Backup telepítéséhez Ubuntu Focal vagy Debian Bullseye vagy újabb (2.0 verziója van).


sudo apt-get update
sudo apt-get install librsync-dev rdiff-backup

Az Rdiff-Backup telepítéséhez a régebbi verziók Ubuntu háttérportjaira (háttérportált 2.0 szükséges).


sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports
sudo apt update
sudo apt install rdiff-backu

CentOS/RHEL 8 rendszeren

Az Rdiff-Backup telepítése CentOS és RHEL 8 rendszerekre (COPR).


sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup

CentOS/RHEL 7 rendszeren

Az Rdiff-Backup telepítése CentOS és RHEL 7 rendszerekre (COPR).


sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup

CentOS/RHEL 6 rendszeren


sudo yum install centos-release-scl
sudo yum install rh-python36 gcc libacl-devel
scl enable rh-python36 bash
sudo pip install rdiff-backup pyxattr pylibacl
echo 'exec scl enable rh-python36 -- rdiff-backup "$@"' | sudo tee /usr/bin/rdiff-backup
sudo chmod +x /usr/bin/rdiff-backup

Fedorán

Az Rdiff-Backup telepítése Fedora 32+ verzióra.


sudo dnf install rdiff-backup

Az rdiff-backup használata Linuxban

Ahogy korábban említettem, az rdiff-backup SSH segítségével csatlakozik a hálózat távoli gépeihez, és az SSH alapértelmezett hitelesítése a felhasználónév/jelszó módszer, amely általában emberi beavatkozást igényel.

Azonban az olyan feladatok automatizálásához, mint például az automatikus biztonsági mentések szkriptekkel és azon túl, be kell állítania az SSH-jelszó nélküli bejelentkezést SSH-kulcsok használatával, mivel az SSH-kulcsok növelik a bizalmat két Linux-szerver között a fájlok egyszerű szinkronizálása vagy átvitele érdekében.

Miután beállította az SSH jelszó nélküli bejelentkezést, elkezdheti használni a szkriptet a következő példákkal.

Fájlok biztonsági mentése különböző partíciókra

Az alábbi példa biztonsági másolatot készít a /etc könyvtárról egy másik partíció Biztonsági mentés könyvtárába:

sudo rdiff-backup /etc /media/aaronkilik/Data/Backup/mint_etc.backup

Egy adott könyvtár és annak alkönyvtárainak kizárásához használja a --exclude opciót az alábbiak szerint:

sudo rdiff-backup --exclude /etc/cockpit --exclude /etc/bluetooth /media/aaronkilik/Data/Backup/mint_etc.backup

Minden eszközfájlt, fifo-fájlt, socket-fájlt és szimbolikus hivatkozást beletehetünk a --include-special-files opcióval az alábbiak szerint:

sudo rdiff-backup --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup

Két másik fontos jelzőt is beállíthatunk a fájlkiválasztáshoz; --max-file-size méret, amely kizárja a megadott méretnél bájtban nagyobb fájlokat, és a --min-file-size méret, amely nem tartalmazza a kisebb fájlokat a megadott méret bájtban:

sudo rdiff-backup --max-file-size 5M --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup

A távoli fájlok biztonsági mentése a helyi Linux szerveren

Ebben a szakaszban a következőket fogjuk használni:

Remote Server (tecmint)	        : 192.168.56.102 
Local Backup Server (backup) 	: 192.168.56.10

Amint azt korábban említettük, az rdiff-backup ugyanazt a verzióját kell telepítenie mindkét gépre, most próbálja meg ellenőrizni a verziót mindkét gépen az alábbiak szerint:

rdiff-backup -V

A biztonsági mentési kiszolgálón hozzon létre egy könyvtárat, amely tárolja a biztonsági mentési fájlokat, például:

mkdir -p /backups

Most futtassa a következő parancsokat a biztonsági mentési kiszolgálóról a /var/log/ és /root könyvtárak biztonsági másolatának készítéséhez a távoli Linux-kiszolgálóról: 192.168.56.102 . in /backups:

rdiff-backup [email ::/var/log/ /backups/192.168.56.102_logs.backup
rdiff-backup [email ::/root/ /backups/192.168.56.102_rootfiles.backup

Az alábbi képernyőképen látható a gyökérfájl a távoli kiszolgálón 192.168.56.102 és a biztonsági másolat fájlok a hátsó szerveren 192.168.56.10:

Vegye figyelembe a képernyőképen látható rdiff-backup-data könyvtárat, amelyet a backup könyvtárban hoztak létre, amely a biztonsági mentés folyamatával és a növekményes fájlokkal kapcsolatos létfontosságú adatokat tartalmaz.

Most a 192.168.56.102 szerveren további fájlok kerültek a gyökérkönyvtárba az alábbiak szerint:

Futtassuk még egyszer a backup parancsot, hogy megkapjuk a megváltozott adatokat, használhatjuk a -v[0-9] (ahol a szám a bőbeszédségi szintet határozza meg, alapértelmezés szerint 3, ami néma) opciót. állítsa be a szóhasználat funkciót:

rdiff-backup -v4 [email ::/root/ /backups/192.168.56.102_rootfiles.backup 

A /backups/192.168.56.102_rootfiles.backup könyvtárban található részleges növekményes biztonsági mentések számának és dátumának felsorolásához a következőket futtathatjuk:

rdiff-backup -l /backups/192.168.56.102_rootfiles.backup/

Rdiff-back biztonsági mentés automatizálása a Cron használatával

Sikeres biztonsági mentés után összefoglaló statisztikákat nyomtathatunk a --print-statistics segítségével. Ha azonban nem állítjuk be ezt a lehetőséget, az információ továbbra is elérhető lesz a munkamenet-statisztikai fájlból. Erről az opcióról bővebben a kézikönyvoldal STATISZTIKA részében olvashat.

A –remote-schema jelző pedig lehetővé teszi, hogy alternatív módszert adjunk meg a távoli számítógéphez való csatlakozáshoz.

Most kezdjük azzal, hogy létrehozunk egy backup.sh szkriptet a 192.168.56.10 biztonsági mentési kiszolgálón, az alábbiak szerint:

cd ~/bin
vi backup.sh

Adja hozzá a következő sorokat a szkriptfájlhoz.

#!/bin/bash

#This is a rdiff-backup utility backup script

#Backup command
rdiff-backup --print-statistics --remote-schema 'ssh -C %s "sudo /usr/bin/rdiff-backup --server --restrict-read-only  /"'  [email ::/var/logs  /backups/192.168.56.102_logs.back

#Checking rdiff-backup command success/error
status=$?
if [ $status != 0 ]; then
        #append error message in ~/backup.log file
        echo "rdiff-backup exit Code: $status - Command Unsuccessful" >>~/backup.log;
        exit 1;
fi

#Remove incremental backup files older than one month
rdiff-backup --force --remove-older-than 1M /backups/192.168.56.102_logs.back

Mentse a fájlt és lépjen ki, majd futtassa a következő parancsot, hogy hozzáadja a szkriptet a crontabhoz a 192.168.56.10 biztonsági mentési kiszolgálón:

crontab -e

Adja hozzá ezt a sort a biztonsági mentési szkript futtatásához naponta éjfélkor:

0   0  *  *  * /root/bin/backup.sh > /dev/null 2>&1

Mentse el a crontab-ot és zárja be, most sikeresen automatizáltuk a biztonsági mentési folyamatot. Győződjön meg arról, hogy a várt módon működik.

Olvassa el az rdiff-backup kézikönyvoldalát további információkért, kimerítő használati lehetőségekért és példákért:

man rdiff-backup

rdiff-backup honlap: http://www.nongnu.org/rdiff-backup/

Egyelőre ennyi! Ebben az oktatóanyagban megmutattuk, hogyan kell telepíteni és alapvetően használni az rdiff-backup-ot, amely egy könnyen használható Python-szkript helyi/távoli növekményes biztonsági mentéshez Linux alatt. Ossza meg velünk gondolatait az alábbi visszajelzési részben.