rdiff-backup - Attālināts papildu dublēšanas rīks Linux


rdiff-backup ir spēcīgs un viegli lietojams Python skripts vietējai/attālai elementārai rezerves kopēšanai, kas darbojas jebkurā POSIX operētājsistēmā, piemēram, Linux, Mac OS X vai Cygwin. Tas apvieno ievērojamās spoguļa un papildu rezerves kopijas.

Zīmīgi, ka tas saglabā apakšdirektorijus, dev failus, cietās saites un kritiskos failu atribūtus, piemēram, atļaujas, uid/gid īpašumtiesības, modifikācijas laikus, paplašinātos atribūtus, acls un resursu dakšas. Tas var darboties caur joslu efektīvā joslas platuma režīmā, līdzīgi kā populārais rsync dublēšanas rīks.

rdiff-backup tīklā, izmantojot SSH, dublē vienu direktoriju citam, kas nozīmē, ka datu pārsūtīšana ir šifrēta un tādējādi droša. Mērķa direktorijā (attālajā sistēmā) tiek iegūta precīza avota direktorija kopija, tomēr papildu apgrieztie diferenciālie elementi mērķa direktorijā tiek glabāti īpašā apakšdirektorijā, ļaujot atgūt pirms kāda laika zaudētus failus.

Lai Linux izmantotu rdiff-backup, sistēmā būs nepieciešamas šādas pakotnes:

  • Python v2.2 vai jaunāka versija
  • librsync v0.9.7 vai jaunāka versija
  • pylibacl un pyxattr Python moduļi nav obligāti, bet nepieciešami attiecīgi POSIX piekļuves kontroles sarakstam (ACL) un paplašinātam atribūtu atbalstam.
  • rdiff-backup-statistics nepieciešama Python v2.4 vai jaunāka versija.

Kā Linux instalēt rdiff-backup

Svarīgi: ja darbojaties tīklā, jums būs jāinstalē abas sistēmas rdiff-backup, vēlams, lai abām rdiff-backup instalācijām būtu tieši tāda pati versija.

Skripts jau atrodas oficiālo Linux izplatījumu oficiālajos krātuvēs, vienkārši palaidiet zemāk esošo komandu, lai instalētu rdiff-backup, kā arī tā atkarības:

Lai instalētu Rdiff-Backup Ubuntu Focal vai Debian Bullseye vai jaunākā versijā (ir 2.0).

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

Lai instalētu Rdiff-Backup Ubuntu vecākajās versijās (nepieciešams backported 2.0).

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

Lai instalētu Rdiff-Backup uz CentOS un RHEL 8 (no COPR).

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

Lai instalētu Rdiff-Backup uz CentOS un RHEL 7 (no 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

Lai instalētu Rdiff-Backup vietnē Fedora 32+.

$ sudo dnf install rdiff-backup

Kā Linux rdiff-backup izmantot

Kā jau minēju iepriekš, rdiff-backup izmanto SSH, lai izveidotu savienojumu ar attālajām mašīnām jūsu tīklā, un noklusējuma autentifikācija SSH ir lietotājvārda/paroles metode, kurai parasti nepieciešama cilvēku mijiedarbība.

Tomēr, lai automatizētu tādus uzdevumus kā automātiska dublēšana ar skriptiem un ne tikai, jums būs jākonfigurē vienkārša failu sinhronizācija vai pārsūtīšana.

Kad esat iestatījis SSH pieteikšanos bez paroles, varat sākt izmantot skriptu ar šādiem piemēriem.

Tālāk sniegtajā piemērā tiks dublēts direktorijs /etc Dublēšanas direktorijā citā nodalījumā:

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

Lai izslēgtu noteiktu direktoriju, kā arī tā apakšdirektorijus, varat izmantot opciju --exclude šādi:

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

Mēs varam iekļaut visus ierīces failus, fifo failus, kontaktligzdas failus un simboliskās saites ar opciju --include-special-files , kā norādīts zemāk:

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

Ir divi citi svarīgi karodziņi, kurus mēs varam iestatīt failu izvēlei; --max-file-size izmērs, kas izslēdz failus, kas ir lielāki par norādīto lielumu baitos, un --min-file-size lielums, kas izslēdz failus, kas ir mazāki par norādītais lielums baitos:

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

Šajā sadaļā mēs izmantosim:

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

Kā jau teicām iepriekš, abās mašīnās jāinstalē viena un tā pati rdiff-backup versija, tagad mēģiniet pārbaudīt versiju abās mašīnās šādi:

$ rdiff-backup -V

Rezerves serverī izveidojiet direktoriju, kurā tiks glabāti dublējuma faili šādi:

# mkdir -p /backups

Tagad no rezerves servera palaidiet šādas komandas, lai izveidotu direktoriju dublējumu /var/log/ un /root no attālā Linux servera 192.168.56.102 sadaļā /dublējumi :

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

Zemāk redzamajā ekrānuzņēmumā ir redzams saknes fails attālajā serverī 192.168.56.102 un dublētie faili aizmugurējā serverī 192.168.56.10:

Ņemiet vērā direktorijā backup izveidoto direktoriju rdiff-backup-data, kā redzams ekrānuzņēmumā, tajā ir svarīgi dati par dublēšanas procesu un elementārdatnēm.

Tagad serverī 192.168.56.102 saknes direktorijā ir pievienoti papildu faili, kā parādīts zemāk:

Atkārtoti palaidīsim dublēšanas komandu, lai iegūtu mainītos datus, mēs varam izmantot opciju -v [0-9] (kur numurs norāda daudzbalsības līmeni, noklusējums ir 3, kas ir kluss). iestatiet daudzbalsības funkciju:

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

Un, lai uzskaitītu direktorijā /backups/192.168.56.102_rootfiles.backup esošo daļēju papildu dublējumu skaitu un datumu, mēs varam palaist:

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

Pēc veiksmīgas dublēšanas mēs varam izdrukāt kopsavilkuma statistiku, izmantojot --print-statistics . Tomēr, ja mēs nenosakām šo opciju, informācija joprojām būs pieejama sesijas statistikas failā. Vairāk par šo opciju lasiet rokasgrāmatas sadaļā STATISTIKA.

Karodziņš –remote-schema ļauj mums norādīt alternatīvu metodi savienojuma izveidei ar attālo datoru.

Sāksim, izveidojot skriptu backup.sh dublējuma serverī 192.168.56.10 šādi:

# cd ~/bin
# vi backup.sh

Pievienojiet skripta failam šādas rindas.

#!/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

Saglabājiet failu un izejiet, pēc tam izpildiet šo komandu, lai pievienotu skriptu rezerves serverī 192.168.56.10 esošajam kronšteinam:

# crontab -e

Pievienojiet šo rindu, lai palaistu rezerves skriptu katru dienu pusnaktī:

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

Saglabājiet crontab un aizveriet to, tagad esam veiksmīgi automatizējuši dublēšanas procesu. Pārliecinieties, ka tas darbojas, kā paredzēts.

Izlasiet rdiff-backup man lapu, lai iegūtu papildinformāciju, izsmeļošas lietošanas iespējas un piemērus:

# man rdiff-backup

rdiff-backup mājas lapa: http://www.nongnu.org/rdiff-backup/

Pagaidām tas ir viss! Šajā apmācībā mēs parādījām, kā instalēt un būtībā izmantot rdiff-backup - viegli lietojamu Python skriptu vietējai/attālai elementārai dublēšanai Linux. Dalieties savās domās, izmantojot tālāk sniegto atsauksmju sadaļu.