rdiff-backup - Remote Incremental Backup Tool Linuxille


rdiff-backup on tehokas ja helppokäyttöinen Python-skripti paikalliseen/etä-inkrementaaliseen varmuuskopiointiin, joka toimii kaikissa POSIX-käyttöjärjestelmissä, kuten Linuxissa, Mac OS X:ssä tai Cygwinissä. Se yhdistää peilin ja inkrementaalisen varmuuskopion merkittävät ominaisuudet.

Merkittävää on, että se säilyttää alihakemistot, dev-tiedostot, kovat linkit ja tärkeät tiedostoattribuutit, kuten käyttöoikeudet, uid/gid-omistuksen, muokkausajat, laajennetut attribuutit, ACL:t ja resurssihaarukat. Se voi toimia kaistanleveyttä säästävässä tilassa putken yli, samalla tavalla kuin suosittu rsync-varmuuskopiointityökalu.

rdiff-backup varmuuskopioi yhden hakemiston toiseen hakemistoon verkon kautta SSH:n avulla, mikä tarkoittaa, että tiedonsiirto on salattu ja siten turvallinen. Kohdehakemisto (etäjärjestelmässä) muodostaa tarkan kopion lähdehakemistosta, mutta ylimääräiset käänteiset erot tallennetaan kohdehakemiston erityiseen alihakemistoon, mikä mahdollistaa jonkin aikaa sitten kadonneiden tiedostojen palauttamisen.

Riippuvuudet

Jotta voit käyttää rdiff-varmuuskopiointia Linuxissa, sinun on asennettava järjestelmääsi seuraavat paketit:

  • Python v2.2 tai uudempi
  • librsync v0.9.7 tai uudempi
  • pylibacl ja pyxattr Python-moduulit ovat valinnaisia, mutta välttämättömiä POSIX Access Control List (ACL) ja laajennetun attribuuttien tuessa.
  • rdiff-backup-statistics vaatii Python v2.4:n tai uudemman.

Kuinka asentaa rdiff-varmuuskopio Linuxiin

Tärkeää: jos käytät verkkoa, sinun on asennettava rdiff-backup molemmat järjestelmät, mieluiten molempien rdiff-backup-asennusten on oltava täsmälleen sama versio.

Komentosarja on jo olemassa yleisten Linux-jakelujen virallisissa arkistoissa. Suorita alla oleva komento asentaaksesi rdiff-varmuuskopion sekä sen riippuvuudet:

Asenna rdiff-varmuuskopio Ubuntuun

Asenna Rdiff-Backup Ubuntu Focaliin tai Debian Bullseyeen tai uudempaan (sillä on 2.0).


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

Asenna Rdiff-Backup Ubuntun taustaportteihin vanhemmille versioille (vaatii backported 2.0:n).


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

CentOS/RHEL 8:ssa

Rdiff-Backupin asentaminen CentOS:ään ja RHEL 8:aan (COPR:lta).


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

CentOS/RHEL 7:ssä

Rdiff-Backupin asentaminen CentOS:ään ja RHEL 7:ään (COPR:lta).


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

CentOS/RHEL 6:ssa


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

Fedorassa

Rdiff-Backupin asentaminen Fedora 32+ -versioon.


sudo dnf install rdiff-backup

Kuinka käyttää rdiff-varmuuskopiota Linuxissa

Kuten aiemmin mainitsin, rdiff-backup käyttää SSH:ta yhteyden muodostamiseen verkon etäkoneisiin, ja SSH:n oletustodennus on käyttäjätunnus/salasana-menetelmä, joka vaatii tavallisesti ihmisen vuorovaikutusta.

Kuitenkin, jos haluat automatisoida tehtäviä, kuten automaattisen varmuuskopioinnin komentosarjoilla ja muilla, sinun on määritettävä SSH-salasanaton sisäänkirjautuminen SSH-avaimilla, koska SSH-avaimet lisäävät kahden Linux-palvelimen välistä luottamusta tiedostojen synkronoinnin tai siirron helpottamiseksi.

Kun olet määrittänyt salasanattoman SSH-kirjautumisen, voit alkaa käyttää komentosarjaa seuraavien esimerkkien avulla.

Varmuuskopioi tiedostot eri osioon

Alla oleva esimerkki varmuuskopioi /etc-hakemiston toisen osion Varmuuskopiointi-hakemistoon:

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

Voit sulkea pois tietyn hakemiston ja sen alihakemistot käyttämällä --exclude-vaihtoehtoa seuraavasti:

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

Voimme sisällyttää kaikki laitetiedostot, fifo-tiedostot, socket-tiedostot ja symboliset linkit --include-special-files-vaihtoehdolla seuraavasti:

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

On olemassa kaksi muuta tärkeää lippua, jotka voimme asettaa tiedostojen valinnassa; --max-file-size-koko, joka ei sisällä tiedostoja, jotka ovat suurempia kuin annettu koko tavuina ja --min-file-size-koko, joka ei sisällä tiedostot, jotka ovat pienempiä kuin annettu koko tavuina:

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

Varmuuskopioi etätiedostot paikalliselle Linux-palvelimelle

Käytämme tätä osiota varten:

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

Kuten aiemmin totesimme, sinun on asennettava sama versio rdiff-backupista molemmille koneille. Yritä nyt tarkistaa versio molemmista koneista seuraavasti:

rdiff-backup -V

Luo varmuuskopiopalvelimelle hakemisto, joka tallentaa varmuuskopiotiedostot seuraavasti:

mkdir -p /backups

Suorita nyt varmuuskopiopalvelimelta seuraavat komennot tehdäksesi varmuuskopion hakemistoista /var/log/ ja /root Linux-etäpalvelimesta 192.168.56.102 . hakemistossa /backups:

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

Alla olevassa kuvakaappauksessa näkyy etäpalvelimen juuritiedosto 192.168.56.102 ja varmuuskopioidut tiedostot takapalvelimella 192.168.56.10:

Huomaa kuvakaappauksessa näkyvä rdiff-backup-data-hakemisto, joka on luotu backup-hakemistoon, se sisältää tärkeitä tietoja varmuuskopiointiprosessista ja lisätiedostoista.

Nyt palvelimen 192.168.56.102 juurihakemistoon on lisätty tiedostoja alla kuvatulla tavalla:

Suoritetaan varmuuskopiointikomento vielä kerran saadaksesi muuttuneet tiedot, voimme käyttää vaihtoehtoa -v[0-9] (jossa numero määrittää sananmukaisuuden tason, oletus on 3, joka on hiljainen) aseta monisanaisuusominaisuus:

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

Ja luetellaksesi /backups/192.168.56.102_rootfiles.backup-hakemistossa olevien osittaisten lisävarmuuskopioiden lukumäärän ja päivämäärän, voimme suorittaa:

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

Rdiff-back-varmuuskopioinnin automatisointi Cronin avulla

Voimme tulostaa yhteenvetotilastot onnistuneen varmuuskopioinnin jälkeen --print-statistics-komennolla. Jos emme kuitenkaan aseta tätä vaihtoehtoa, tiedot ovat edelleen saatavilla istuntotilastotiedostosta. Lue lisää tästä vaihtoehdosta man-sivun TILASTO-osiosta.

Ja –remote-schema-lipun avulla voimme määrittää vaihtoehtoisen tavan muodostaa yhteys etätietokoneeseen.

Aloitetaan nyt luomalla backup.sh-skripti varmuuskopiopalvelimelle 192.168.56.10 seuraavasti:

cd ~/bin
vi backup.sh

Lisää seuraavat rivit komentosarjatiedostoon.

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

Tallenna tiedosto ja poistu ja lisää komentosarja varmuuskopiopalvelimen crontabiin 192.168.56.10 suorittamalla seuraava komento:

crontab -e

Lisää tämä rivi suorittaaksesi varmuuskopion joka päivä keskiyöllä:

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

Tallenna crontab ja sulje se, nyt olemme onnistuneet automatisoimaan varmuuskopiointiprosessin. Varmista, että se toimii odotetulla tavalla.

Lue rdiff-backup man -sivulta lisätietoja, kattavia käyttövaihtoehtoja ja esimerkkejä:

man rdiff-backup

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

Siinä se toistaiseksi! Tässä opetusohjelmassa osoitimme, kuinka voit asentaa ja periaatteessa käyttää rdiff-varmuuskopiointia, helppokäyttöistä Python-skriptiä paikalliseen/etä-inkrementaaliseen varmuuskopiointiin Linuxissa. Jaa ajatuksesi kanssamme alla olevan palauteosion kautta.