rdiff-backup - Linuxi kaugkasutatava varundamise tööriist


rdiff-backup on võimas ja hõlpsasti kasutatav Pythoni skript kohaliku/kaugkasutatava varukoopia jaoks, mis töötab mis tahes POSIX-i operatsioonisüsteemis, nagu Linux, Mac OS X või Cygwin. See ühendab peegli ja täiendava varukoopia tähelepanuväärsed omadused.

Tähelepanuväärne on see, et see säilitab alamkataloogid, dev-failid, kõvaketta lingid ja kriitilised failiatribuudid, näiteks õigused, uid/gid-i omandiline kuuluvus, muutmisajad, laiendatud atribuudid, acl-failid ja ressursside kahvlid. See võib töötada ribalaiuse säästlikus režiimis üle toru sarnaselt populaarse rsynci varundustööriistaga.

rdiff-backup varundab SSH-d kasutades ühe võrgu kaudu ühe kataloogi teise, mis tähendab, et andmeedastus on seega turvaliselt krüpteeritud. Sihtkataloog (kaugsüsteemis) jõuab lähtekataloogi täpse koopiana, kuid täiendavad vastupidised diffid salvestatakse sihtkataloogi spetsiaalsesse alamkataloogi, mis võimaldab mõnda aega tagasi kaotatud faile taastada.

Linuxis rdiff-backupi kasutamiseks peate oma süsteemi installima järgmised paketid:

  • Python v2.2 või uuem
  • librsync v0.9.7 või uuem
  • pylibacl ja pyxattr Python moodulid on valikulised, kuid vajalikud vastavalt POSIX-i juurdepääsukontrolli loendi (ACL) ja laiendatud atribuutide toe jaoks.
  • rdiff-backup-statistika nõuab Pythoni v2.4 või uuemat.

Kuidas installida rdiff-backup Linuxi

Tähtis: kui töötate võrgu kaudu, peate installima mõlemad süsteemid rdiff-backup, eelistatavalt peavad mõlemad rdiff-backupi installid olema täpselt sama versioon.

Skript on juba olemas Linuxi peavoolu distributsioonide ametlikes hoidlates, käivitage rdiff-backupi ja selle sõltuvuste installimiseks lihtsalt järgmine käsk:

Rdiff-Backupi installimiseks Ubuntu Focalile või Debiani Bullseye'ile või uuemale (on 2.0).

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

Rdiff-Backupi installimiseks Ubuntu vanemate versioonide seljaportidesse (vajab backport 2.0).

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

Rdiff-Backupi installimiseks CentOS-ile ja RHEL 8-le (COPRilt).

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

Rdiff-Backupi installimine CentOS-ile ja RHEL 7-le (COPRilt).

$ sudo yum install yum-plugin-copr epel-release
$ sudo yum copr enable frankcrawford/rdiff-backup
$ sudo yum install rdiff-backup
$ 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 "[email protected]"' | sudo tee /usr/bin/rdiff-backup
$ sudo chmod +x /usr/bin/rdiff-backup

Rdiff-Backupi installimiseks Fedora 32+.

$ sudo dnf install rdiff-backup

Rdiff-backupi kasutamine Linuxis

Nagu ma varem mainisin, kasutab rdiff-backup teie võrgus kaugmasinatega ühenduse loomiseks SSH-d ja SSH-i vaikimisi autentimine on kasutajanime/parooli meetod, mis tavaliselt nõuab inimese suhtlust.

Kuid selliste ülesannete automatiseerimiseks nagu automaatsed varukoopiad skriptidega ja kaugemale, peate konfigureerima failide lihtsa sünkroonimise või edastamise.

Kui olete SSH paroolita sisselogimise seadistanud, saate skripti kasutada järgmiste näidetega.

Allpool olev näide varundab kataloogi /etc teise sektsiooni varukoopiate kataloogis:

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

Konkreetse kataloogi ja selle alamkataloogide välistamiseks võite kasutada valikut --exclude järgmiselt:

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

Valikuga --include-special-files võime lisada kõik seadme failid, fifo-failid, soklifailid ja sümboolsed lingid järgmiselt:

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

Failide valimiseks on veel kaks olulist lippu; --max-file-size size, mis välistab failid, mis on suuremad kui baitides antud suurus, ja --min-file-size suurus, mis välistab failid, mis on väiksemad kui etteantud suurus baitides:

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

Selles jaotises kasutame järgmist:

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

Nagu me varem ütlesime, peate mõlemale masinale installima sama versiooni rdiff-backup, proovige nüüd versiooni mõlemas masinas kontrollida järgmiselt:

$ rdiff-backup -V

Varundusserveris looge kataloog, kuhu salvestatakse varukoopiad:

# mkdir -p /backups

Nüüd käivitage varundusserverist järgmised käsud kataloogide /var/log/ ja /root varundamiseks kaugserverist 192.168.56.102 jaotises /varukoopiad :

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

Allpool olev ekraanipilt näitab juurfaili kaugserveris 192.168.56.102 ja varundatud faile tagumises serveris 192.168.56.10:

Pange tähele kataloogis backup loodud kataloogi rdiff-backup-data, nagu ekraanipildil näha, see sisaldab olulisi andmeid varundamisprotsessi ja täiendavate failide kohta.

Nüüd serveris 192.168.56.102 on juurkataloogi lisatud täiendavaid faile, nagu allpool näidatud:

Käivitame varundatud käsu muudetud andmete saamiseks veel kord, saame kasutada valikut -v [0-9] (kus number määrab täpsuse taseme, vaikimisi on vaikne 3 määrake paljususe funktsioon:

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

Ja kataloogis /backups/192.168.56.102_rootfiles.backup sisalduvate osaliste täiendavate varukoopiate arvu ja kuupäeva loetlemiseks võime käivitada:

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

Kokkuvõtliku statistika saame pärast edukat varundamist printida --print-statistics abil. Kui me seda valikut ei määra, on teave siiski seansistatistika failist saadaval. Selle valiku kohta saate lisateavet manulehe jaotisest STATISTIKA.

Ja -remote-schema lipp võimaldab meil määrata alternatiivse meetodi kaugarvutiga ühenduse loomiseks.

Alustame varundusserverisse 192.168.56.10 skripti backup.sh loomisega järgmiselt:

# cd ~/bin
# vi backup.sh

Lisage skriptifaili järgmised read.

#!/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 protected]::/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

Salvestage fail ja väljuge, seejärel käivitage järgmine käsk skripti lisamiseks varundusserveri 192.168.56.10 crontabile:

# crontab -e

Lisage see rida varukripti käitamiseks iga päev keskööl:

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

Salvestage crontab ja sulgege see, nüüd oleme varundamisprotsessi edukalt automatiseerinud. Veenduge, et see töötab ootuspäraselt.

Lisateavet, ammendavaid kasutusvalikuid ja näiteid lugege läbi rdiff-backup manulehe:

# man rdiff-backup

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

Praegu on see kõik! Selles õpetuses näitasime teile, kuidas installida ja põhimõtteliselt kasutada rdiff-backup, hõlpsasti kasutatav Pythoni skript Linuxi kohaliku/kaugkasutatava varukoopia jaoks. Jagage oma mõtteid meiega allpool oleva tagasiside jaotise kaudu.