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.