rdiff-backup - Għodda ta' Backup Inkrementali Remote għal Linux


rdiff-backup huwa skript Python b'saħħtu u faċli biex jintuża għal backup inkrementali lokali/remot, li jaħdem fuq kwalunkwe sistema operattiva POSIX bħal Linux, Mac OS X jew Cygwin. Jiġbor flimkien il-karatteristiċi notevoli ta 'mera u backup inkrementali.

B'mod sinifikanti, tippreserva subdirectories, dev files, hard links, u attributi kritiċi tal-fajl bħal permessi, sjieda uid/gid, ħinijiet ta 'modifika, attributi estiżi, acls, u frieket tar-riżorsi. Jista 'jaħdem f'modalità effiċjenti fil-bandwidth fuq pajp, b'mod simili bħall-għodda popolari ta' backup rsync.

rdiff-backup jappoġġa direttorju wieħed għal ieħor fuq netwerk bl-użu ta 'SSH, li jimplika li t-trasferiment tad-dejta huwa encrypted b'hekk sikur. Id-direttorju fil-mira (fuq is-sistema remota) jispiċċa kopja eżatta tad-direttorju tas-sors, madankollu diffs reverse żejda huma maħżuna f'subdirettorju speċjali fid-direttorju fil-mira, li jagħmilha possibbli li jiġu rkuprati fajls mitlufa xi żmien ilu.

Biex tuża rdiff-backup fil-Linux, ikollok bżonn il-pakketti li ġejjin installati fis-sistema tiegħek:

  • Python v2.2 jew aktar tard
  • librsync v0.9.7 jew aktar tard
  • Il-moduli pylibacl u pyxattr Python huma fakultattivi iżda meħtieġa għal-lista ta' kontroll ta' aċċess POSIX (ACL) u appoġġ ta' attribut estiż rispettivament.
  • rdiff-backup-statistics teħtieġ Python v2.4 jew aktar tard.

Kif Tinstalla rdiff-backup fil-Linux

Importanti: Jekk qed topera fuq netwerk, ikollok tinstalla ż-żewġ sistemi rdiff-backup, preferibbilment iż-żewġ installazzjonijiet ta 'rdiff-backup se jkollhom ikunu eżattament l-istess verżjoni.

L-iskrittura hija diġà preżenti fir-repożitorji uffiċjali tad-distribuzzjonijiet mainstream tal-Linux, sempliċement ħaddem il-kmand hawn taħt biex tinstalla rdiff-backup kif ukoll id-dipendenzi tiegħu:

Biex tinstalla Rdiff-Backup fuq Ubuntu Focal jew Debian Bullseye jew aktar ġodda (għandha 2.0).

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

Biex tinstalla Rdiff-Backup fuq backports Ubuntu għal verżjonijiet eqdem (jeħtieġ backported 2.0).

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

Biex tinstalla Rdiff-Backup fuq CentOS u RHEL 8 (minn COPR).

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

Biex tinstalla Rdiff-Backup fuq CentOS u RHEL 7 (minn 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

Biex tinstalla Rdiff-Backup fuq Fedora 32+.

$ sudo dnf install rdiff-backup

Kif tuża rdiff-backup fil-Linux

Kif semmejt qabel, rdiff-backup juża SSH biex jgħaqqad ma 'magni remoti fuq in-netwerk tiegħek, u l-awtentikazzjoni default f'SSH hija l-metodu username/password, li normalment teħtieġ interazzjoni umana.

Madankollu, biex awtomat kompiti bħal backups awtomatiċi bi skripts u lil hinn, ser ikollok bżonn tikkonfigura sinkronizzazzjoni jew trasferiment faċli tal-fajl.

Ladarba tkun issettjajt SSH Passwordless Login, tista 'tibda tuża l-iskrittura bl-eżempji li ġejjin.

L-eżempju hawn taħt se jagħmel backup tad-direttorju /etc f'direttorju tal-Backup fuq partizzjoni oħra:

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

Biex teskludi direttorju partikolari kif ukoll is-subdirettorji tiegħu, tista' tuża l-għażla --exclude kif ġej:

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

Nistgħu ninkludu l-fajls kollha tat-tagħmir, il-fajls fifo, il-fajls tas-socket, u l-links simboliċi bl-għażla --include-special-files kif hawn taħt:

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

Hemm żewġ bnadar importanti oħra li nistgħu nissettjaw għall-għażla tal-fajl; --max-file-size daqs li jeskludi fajls li huma akbar mid-daqs mogħti f'bytes u --min-file-size daqs li jeskludi fajls li huma iżgħar minn id-daqs mogħti f'bytes:

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

Għall-iskop ta’ din it-taqsima, aħna ser nużaw:

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

Kif iddikjarajna qabel, trid tinstalla l-istess verżjoni ta 'rdiff-backup fuq iż-żewġ magni, issa ipprova tivverifika l-verżjoni fuq iż-żewġ magni kif ġej:

$ rdiff-backup -V

Fuq is-server tal-backup, oħloq direttorju li jaħżen il-fajls tal-backup hekk:

# mkdir -p /backups

Issa mis-server tal-backup, mexxi l-kmandi li ġejjin biex tagħmel backup tad-direttorji /var/log/ u /root minn server Linux remot 192.168.56.102 f'/ backups:

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

Il-screenshot t'hawn taħt turi l-fajl tal-għeruq fuq is-server remot 192.168.56.102 u l-fajls ta' backup fuq is-server ta' wara 192.168.56.10:

Ħu nota tad-direttorju rdiff-backup-data maħluq fid-direttorju backup kif jidher fil-screenshot, fih dejta vitali dwar il-proċess tal-backup u fajls inkrementali.

Issa, fuq is-server 192.168.56.102, fajls addizzjonali ġew miżjuda mad-direttorju tal-għeruq kif muri hawn taħt:

Ejja nħaddmu l-kmand tal-backup għal darba oħra biex niksbu d-dejta mibdula, nistgħu nużaw l-għażla -v[0-9] (fejn in-numru jispeċifika l-livell ta’ verbosità, default huwa 3 li huwa sieket) issettja l-karatteristika ta’ verbosity:

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

U biex telenka n-numru u d-data tal-backups inkrementali parzjali li jinsabu fid-direttorju /backups/192.168.56.102_rootfiles.backup, nistgħu nħaddmu:

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

Nistgħu nipprintjaw statistika fil-qosor wara backup b'suċċess bil---print-statistics. Madankollu, jekk ma nissettjawx din l-għażla, l-informazzjoni xorta tkun disponibbli mill-fajl tal-istatistika tas-sessjoni. Aqra aktar dwar din l-għażla fit-taqsima STATISTIKA tal-paġna man.

U l-bandiera –remote-schema tippermettilna nispeċifikaw metodu alternattiv ta' konnessjoni ma' kompjuter remot.

Issa, ejja nibdew billi noħolqu skript backup.sh fuq is-server tal-backup 192.168.56.10 kif ġej:

# cd ~/bin
# vi backup.sh

Żid il-linji li ġejjin mal-fajl tal-iskrittura.

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

Issejvja l-fajl u oħroġ, imbagħad mexxi l-kmand li ġej biex iżżid l-iskrittura mal-crontab fuq is-server tal-backup 192.168.56.10:

# crontab -e

Żid din il-linja biex tħaddem l-iscript tal-backup tiegħek kuljum f'nofsillejl:

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

Issejvja l-crontab u agħlaqha, issa rnexxielna awtomatizzat il-proċess tal-backup. Kun żgur li qed taħdem kif mistenni.

Aqra l-paġna man rdiff-backup għal informazzjoni addizzjonali, għażliet ta’ użu eżawrjenti u eżempji:

# man rdiff-backup

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

Dak hu għalissa! F'dan it-tutorja, wrejnek kif tinstalla u bażikament tuża rdiff-backup, script Python faċli biex tużah għal backup inkrementali lokali/remot fil-Linux. Aqsam il-ħsibijiet tiegħek magħna permezz tat-taqsima tal-feedback hawn taħt.