rdiff-backup - Oddaljeno inkrementalno orodje za varnostno kopiranje za Linux
rdiff-backup je zmogljiv in enostaven za uporabo Python skript za lokalno/oddaljeno inkrementalno varnostno kopiranje, ki deluje v vseh operacijskih sistemih POSIX, kot so Linux, Mac OS X ali Cygwin. Združuje izjemne lastnosti ogledala in postopno varnostno kopijo.
Pomembno je, da ohranja podimenike, datoteke razvijalcev, trde povezave in kritične atribute datotek, kot so dovoljenja, lastništvo uid/gid, časi sprememb, razširjeni atributi, acls in vilice virov. Lahko deluje v pasovno širokopasovnem načinu preko cevi, na podoben način kot priljubljeno orodje za varnostno kopiranje rsync.
rdiff-backup varnostno kopira en sam imenik v drugem omrežju s pomočjo SSH, kar pomeni, da je prenos podatkov šifriran in tako varen. Ciljni imenik (v oddaljenem sistemu) ima natančno kopijo izvornega imenika, vendar so dodatne povratne razlike shranjene v posebnem podimeniku ciljnega imenika, kar omogoča obnovitev datotek, izgubljenih pred časom.
Če želite v sistemu Linux uporabljati rdiff-backup, boste v sistemu potrebovali naslednje pakete:
- Python v2.2 ali novejši
- librsync v0.9.7 ali novejši
- pylibacl in pyxattr Python modula sta neobvezna, vendar potrebna za seznam za nadzor dostopa POSIX (ACL) in podporo za razširjene atribute.
- rdiff-backup-statistics zahteva Python v2.4 ali novejšo različico.
Kako namestiti rdiff-backup v Linux
Pomembno: Če delate v omrežju, boste morali namestiti oba sistema rdiff-backup, po možnosti morata biti obe namestitvi rdiff-backup popolnoma enaki.
Skript je že prisoten v uradnih skladiščih glavnih distribucij Linuxa, preprosto zaženite spodnji ukaz, da namestite rdiff-backup in njegove odvisnosti:
Če želite namestiti Rdiff-Backup na Ubuntu Focal ali Debian Bullseye ali novejše (ima 2.0).
$ sudo apt-get update $ sudo apt-get install librsync-dev rdiff-backup
Če želite namestiti Rdiff-Backup na hrbtne plošče Ubuntu za starejše različice (potrebuje backported 2.0).
$ sudo add-apt-repository ppa:rdiff-backup/rdiff-backup-backports $ sudo apt update $ sudo apt install rdiff-backu
Za namestitev Rdiff-Backup na CentOS in RHEL 8 (od COPR).
$ sudo yum install yum-plugin-copr epel-release $ sudo yum copr enable frankcrawford/rdiff-backup $ sudo yum install rdiff-backup
Za namestitev Rdiff-Backup na CentOS in RHEL 7 (od COPR).
$ 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 "' | sudo tee /usr/bin/rdiff-backup $ sudo chmod +x /usr/bin/rdiff-backup
Namestitev Rdiff-Backup na Fedora 32+.
$ sudo dnf install rdiff-backup
Kako uporabljati rdiff-backup v Linuxu
Kot sem že omenil, rdiff-backup uporablja SSH za povezavo z oddaljenimi računalniki v vašem omrežju, privzeta overitev v SSH pa je uporabniško ime/geslo, ki običajno zahteva človeško interakcijo.
Če želite avtomatizirati naloge, kot so samodejne varnostne kopije s skripti in pozneje, boste morali konfigurirati enostavno sinhronizacijo ali prenos datotek.
Ko nastavite prijavo SSH Passwordless Login, lahko začnete uporabljati skript z naslednjimi primeri.
Spodnji primer bo varnostno kopiral imenik /etc
v varnostnem imeniku na drugi particiji:
$ sudo rdiff-backup /etc /media/aaronkilik/Data/Backup/mint_etc.backup
Če želite izključiti določen imenik in njegove podimenike, lahko uporabite možnost --exclude
, kot sledi:
$ sudo rdiff-backup --exclude /etc/cockpit --exclude /etc/bluetooth /media/aaronkilik/Data/Backup/mint_etc.backup
Vključimo lahko vse datoteke naprav, datoteke fifo, datoteke vtičnic in simbolične povezave z možnostjo --include-special-files
, kot je prikazano spodaj:
$ sudo rdiff-backup --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup
Za izbiro datoteke lahko nastavimo še dve pomembni zastavici; --max-file-size
velikost, ki izključuje datoteke, ki so večje od dane velikosti v bajtih, in --min-file-size
velikost, ki izključuje datoteke, ki so manjše od podana velikost v bajtih:
$ sudo rdiff-backup --max-file-size 5M --include-special-files --exclude /etc/cockpit /media/aaronkilik/Data/Backup/mint_etc.backup
Za namen tega razdelka bomo uporabili:
Remote Server (tecmint) : 192.168.56.102 Local Backup Server (backup) : 192.168.56.10
Kot smo že omenili, morate na obe računalniki namestiti isto različico rdiff-backup, zdaj poskusite preveriti različico na obeh računalnikih, kot sledi:
$ rdiff-backup -V
Na strežniku za varnostno kopiranje ustvarite imenik, v katerem bodo datoteke za varnostno kopiranje shranjene tako:
# mkdir -p /backups
Zdaj na varnostnem strežniku zaženite naslednje ukaze, da naredite varnostno kopijo imenikov /var/log/
in /root
z oddaljenega Linux strežnika 192.168.56.102 v /varnostne kopije
:
# rdiff-backup [email ::/var/log/ /backups/192.168.56.102_logs.backup # rdiff-backup [email ::/root/ /backups/192.168.56.102_rootfiles.backup
Spodnji posnetek zaslona prikazuje korensko datoteko na oddaljenem strežniku 192.168.56.102 in varnostno kopirane datoteke na zadnjem strežniku 192.168.56.10:
Upoštevajte imenik rdiff-backup-data, ustvarjen v imeniku backup
, kot je razvidno iz posnetka zaslona, saj vsebuje ključne podatke o postopku varnostnega kopiranja in prirastnih datotekah.
Zdaj so na strežniku 192.168.56.102 v korenski imenik dodane dodatne datoteke, kot je prikazano spodaj:
Ponovno zaženimo ukaz za varnostno kopiranje, da dobimo spremenjene podatke, lahko uporabimo možnost -v [0-9]
(kjer številka določa raven podrobnosti, privzeto je 3, ki je tiho), da nastavite podrobnost:
# rdiff-backup -v4 [email ::/root/ /backups/192.168.56.102_rootfiles.backup
Če želimo navesti število in datum delnih inkrementalnih varnostnih kopij v imeniku /backups/192.168.56.102_rootfiles.backup, lahko zaženemo:
# rdiff-backup -l /backups/192.168.56.102_rootfiles.backup/
Po uspešnem varnostnem kopiranju lahko natisnemo povzetek statističnih podatkov z --print-statistics
. Če pa te možnosti ne nastavimo, bodo informacije še vedno na voljo v datoteki s statističnimi podatki o sejah. Več o tej možnosti preberite v oddelku STATISTIKA na priročni strani.
Oznaka –remote-schema nam omogoča, da določimo alternativni način povezave z oddaljenim računalnikom.
Zdaj pa začnimo z ustvarjanjem skripta backup.sh
na varnostnem strežniku 192.168.56.10, kot sledi:
# cd ~/bin # vi backup.sh
V datoteko skripta dodajte naslednje vrstice.
#!/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
Shranite datoteko in zapustite, nato zaženite naslednji ukaz, da dodate skript v crontab na varnostnem strežniku 192.168.56.10:
# crontab -e
Dodajte to vrstico, če želite nadomestni skript izvajati vsak dan ob polnoči:
0 0 * * * /root/bin/backup.sh > /dev/null 2>&1
Shranite crontab in ga zaprite, zdaj smo uspešno avtomatizirali postopek varnostnega kopiranja. Prepričajte se, da deluje po pričakovanjih.
Za dodatne informacije, izčrpne možnosti uporabe in primere preberite stran s pomočjo rdiff-backup.
# man rdiff-backup
Domača stran rdiff-backup: http://www.nongnu.org/rdiff-backup/
Za zdaj je to! V tej vadnici smo vam pokazali, kako namestiti in v bistvu uporabiti rdiff-backup, enostaven za uporabo skript Python za lokalno/oddaljeno inkrementalno varnostno kopiranje v Linuxu. Delite svoje misli z nami v spodnjem razdelku za povratne informacije.