rdiff-backup - Alat za daljinsko inkrementalno sigurnosno kopiranje za Linux
rdiff-backup je moćna i laka za korištenje Python skripta za lokalno/daljinsko inkrementalno sigurnosno kopiranje, koja radi na bilo kojem POSIX operativnom sistemu kao što je Linux, Mac OS X ili Cygwin. Objedinjuje izvanredne karakteristike ogledala i inkrementalne rezervne kopije.
Značajno je da čuva poddirektorije, dev datoteke, čvrste veze i kritične atribute datoteka kao što su dozvole, vlasništvo uid/gid-a, vremena modifikacije, prošireni atributi, acl-ovi i vilice resursa. Može da radi u režimu koji je efikasan u propusnom opsegu preko cevi, na sličan način kao i popularni rsync alat za pravljenje rezervnih kopija.
rdiff-backup pravi sigurnosnu kopiju jednog direktorija u drugom preko mreže koristeći SSH, što implicira da je prijenos podataka šifriran i tako siguran. Ciljni direktorij (na udaljenom sistemu) završava točnu kopiju izvornog direktorija, međutim dodatni obrnuti diffovi su pohranjeni u posebnom poddirektoriju u ciljnom direktoriju, što omogućava vraćanje datoteka izgubljenih prije nekog vremena.
Zavisnosti
Da biste koristili rdiff-backup u Linuxu, trebat će vam sljedeći paketi instalirani na vašem sistemu:
- Python v2.2 ili noviji
- librsync v0.9.7 ili noviji
- pylibacl i pyxattr Python moduli su opcioni, ali neophodni za POSIX listu kontrole pristupa (ACL) i podršku proširenih atributa.
- rdiff-backup-statistics zahtijeva Python v2.4 ili noviji.
Kako instalirati rdiff-backup u Linux
Važno: Ako radite preko mreže, morat ćete instalirati rdiff-backup oba sistema, po mogućnosti obje instalacije rdiff-backup-a moraju biti tačne ista verzija.
Skripta je već prisutna u zvaničnim repozitorijumima mainstream Linux distribucija, jednostavno pokrenite naredbu ispod da instalirate rdiff-backup kao i njegove zavisnosti:
Intall rdiff-backup na Ubuntu
Da instalirate Rdiff-Backup na Ubuntu Focal ili Debian Bullseye ili noviji (ima 2.0).
sudo apt-get update
sudo apt-get install librsync-dev rdiff-backup
Da instalirate Rdiff-Backup na Ubuntu backports za starije verzije (potreban je backported 2.0).
sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports
sudo apt update
sudo apt install rdiff-backu
Na CentOS/RHEL 8
Da instalirate Rdiff-Backup na CentOS i RHEL 8 (od COPR).
sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup
Na CentOS/RHEL 7
Da instalirate Rdiff-Backup na CentOS i RHEL 7 (od COPR).
sudo yum install yum-plugin-copr epel-release
sudo yum copr enable frankcrawford/rdiff-backup
sudo yum install rdiff-backup
Na CentOS/RHEL 6
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
Na Fedori
Da instalirate Rdiff-Backup na Fedora 32+.
sudo dnf install rdiff-backup
Kako koristiti rdiff-backup u Linuxu
Kao što sam već pomenuo, rdiff-backup koristi SSH za povezivanje sa udaljenim mašinama na vašoj mreži, a podrazumevana autentifikacija u SSH-u je metoda korisničkog imena/lozinke, koja obično zahteva ljudsku interakciju.
Međutim, da biste automatizirali zadatke kao što su automatsko pravljenje sigurnosnih kopija sa skriptama i dalje, morat ćete konfigurirati SSH prijavu bez lozinke koristeći SSH ključeve, jer SSH ključevi povećavaju povjerenje između dva Linux servera za jednostavnu sinhronizaciju ili prijenos datoteka.
Nakon što postavite SSH prijavu bez lozinke, možete početi koristiti skriptu sa sljedećim primjerima.
Sigurnosna kopija datoteka na različite particije
Primjer ispod će sigurnosno kopirati /etc
direktorij u Backup direktorij na drugoj particiji:
sudo rdiff-backup /etc /media/aaronkilik/Data/Backup/mint_etc.backup
Da biste isključili određeni direktorij kao i njegove poddirektorije, možete koristiti opciju --exclude
na sljedeći način:
sudo rdiff-backup --exclude /etc/cockpit --exclude /etc/bluetooth /media/aaronkilik/Data/Backup/mint_etc.backup
Možemo uključiti sve datoteke uređaja, fifo datoteke, datoteke socketa i simboličke veze sa opcijom --include-special-files
kao u nastavku:
sudo rdiff-backup --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup
Postoje još dvije važne zastavice koje možemo postaviti za odabir datoteke; --max-file-size
veličina koja isključuje datoteke koje su veće od date veličine u bajtovima i --min-file-size
veličinu koja isključuje datoteke koje su manje od data veličina u bajtovima:
sudo rdiff-backup --max-file-size 5M --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup
Napravite sigurnosnu kopiju udaljenih datoteka na lokalnom Linux serveru
Za potrebe ovog odjeljka koristit ćemo:
Remote Server (tecmint) : 192.168.56.102
Local Backup Server (backup) : 192.168.56.10
Kao što smo ranije rekli, morate instalirati istu verziju rdiff-backup na oba stroja, sada pokušajte provjeriti verziju na oba stroja na sljedeći način:
rdiff-backup -V
Na backup serveru kreirajte direktorij koji će pohraniti datoteke sigurnosne kopije na sljedeći način:
mkdir -p /backups
Sada sa backup servera pokrenite sljedeće naredbe da napravite sigurnosnu kopiju direktorija /var/log/
i /root
sa udaljenog Linux servera 192.168.56.102 u /backups
:
rdiff-backup [email ::/var/log/ /backups/192.168.56.102_logs.backup
rdiff-backup [email ::/root/ /backups/192.168.56.102_rootfiles.backup
Snimak ekrana ispod prikazuje root datoteku na udaljenom serveru 192.168.56.102 i sigurnosne kopije datoteka na stražnjem serveru 192.168.56.10:
Obratite pažnju na rdiff-backup-data direktorij kreiran u direktoriju backup
kao što se vidi na snimku ekrana, on sadrži vitalne podatke koji se odnose na proces izrade sigurnosne kopije i inkrementalne datoteke.
Sada, na serveru 192.168.56.102, dodatne datoteke su dodane u korijenski direktorij kao što je prikazano ispod:
Pokrenimo naredbu sigurnosne kopije još jednom da dobijemo izmijenjene podatke, možemo koristiti -v[0-9]
(gdje broj specificira nivo opširnosti, zadano je 3 što je tiho) opciju za postavite funkciju opširnosti:
rdiff-backup -v4 [email ::/root/ /backups/192.168.56.102_rootfiles.backup
A da navedemo broj i datum djelomičnih inkrementalnih sigurnosnih kopija sadržanih u direktoriju /backups/192.168.56.102_rootfiles.backup, možemo pokrenuti:
rdiff-backup -l /backups/192.168.56.102_rootfiles.backup/
Automatizacija rdiff-back backup-a korištenjem Cron
Možemo ispisati sažetak statistike nakon uspješne sigurnosne kopije pomoću --print-statistics
. Međutim, ako ne postavimo ovu opciju, informacije će i dalje biti dostupne iz datoteke statistike sesije. Pročitajte više o ovoj opciji u odeljku STATISTIKA na stranici man.
A oznaka –remote-schema nam omogućava da navedemo alternativni metod povezivanja na udaljeni računar.
Sada, krenimo kreiranjem backup.sh
skripte na backup serveru 192.168.56.10 kako slijedi:
cd ~/bin
vi backup.sh
Dodajte sljedeće redove u datoteku skripte.
#!/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
Sačuvajte datoteku i izađite, a zatim pokrenite sljedeću naredbu da dodate skriptu u crontab na backup serveru 192.168.56.10:
crontab -e
Dodajte ovu liniju za pokretanje vaše skripte za sigurnosnu kopiju svakog dana u ponoć:
0 0 * * * /root/bin/backup.sh > /dev/null 2>&1
Sačuvajte crontab i zatvorite ga, sada smo uspješno automatizirali proces sigurnosne kopije. Uvjerite se da radi kako se očekuje.
Pročitajte rdiff-backup man stranicu za dodatne informacije, iscrpne opcije upotrebe i primjere:
man rdiff-backup
rdiff-backup Početna stranica: http://www.nongnu.org/rdiff-backup/
To je to za sada! U ovom vodiču smo vam pokazali kako instalirati i u osnovi koristiti rdiff-backup, Python skriptu laku za korištenje za lokalno/daljinsko inkrementalno sigurnosno kopiranje u Linuxu. Podijelite svoje mišljenje s nama putem odjeljka za povratne informacije u nastavku.