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.