rdiff-ätiýaçlyk - Linux üçin uzakdan artýan ätiýaçlyk guraly


rdiff-ätiýaçlyk Linux, Mac OS X ýa-da Cygwin ýaly islendik POSIX operasiýa ulgamynda işleýän ýerli/uzakdan artýan ätiýaçlyk ätiýaçlyk üçin güýçli we aňsat Python skriptidir. Aýnanyň ajaýyp aýratynlyklaryny we artýan ätiýaçlyk nusgasyny birleşdirýär.

Möhüm ähmiýeti, bu bukjalary, dev faýllaryny, gaty baglanyşyklary we rugsatlar, uid/gid eýeçiligi, üýtgetme wagtlary, giňeldilen atributlar, acls we çeşme çatryklary ýaly möhüm faýl atributlaryny saklaýar. Meşhur rsync ätiýaçlyk guralyna meňzeş görnüşde, turbanyň üstünden geçirijilik giňligi tygşytly re modeimde işläp biler.

rdiff-ätiýaçlyk, SSH ulanyp, bir katalogy başga bir torda ätiýaçlandyrýar, bu bolsa maglumatlaryň geçirilmeginiň şifrlenenligini aňladýar. Maksatly katalog (uzakdaky ulgamda) çeşme katalogynyň takyk göçürmesini gutarýar, ýöne goşmaça ters tapawutlar belli bir bukjada ýörite bukjada saklanýar we birnäçe wagt ozal ýitirilen faýllary dikeltmäge mümkinçilik berýär.

Linux-da rdiff-ätiýaçlyk nusgasyny ulanmak üçin ulgamyňyza gurlan aşakdaky paketler gerek bolar:

  • Python v2.2 ýa-da soňraky
  • librsync v0.9.7 ýa-da soňraky
  • pylibacl we pyxattr Python modullary hökmany, ýöne POSIX giriş gözegçilik sanawy (ACL) we giňeldilen atribut goldawy üçin zerur.
  • rdiff-backup-statistika Python v2.4 ýa-da has soňraky talap edýär.

Linux-da rdiff-ätiýaçlyk nusgasyny nädip gurmaly

Üns beriň: Bir ulgamyň üstünde işleýän bolsaňyz, iki ulgamy rdiff-ätiýaçlyk gurnamaly bolarsyňyz, has gowusy rdiff-ätiýaçlyk gurnamalarynyň ikisi hem birmeňzeş wersiýa bolmaly.

Scriptazgy eýýäm esasy Linux paýlaýjylarynyň resmi ammarlarynda bar, rdiff-ätiýaçlyk nusgasyny we garaşlylygyny gurmak üçin aşakdaky buýrugy işlediň:

“Ubuntu Fokal” ýa-da “Debian Bullseye” ýa-da has täze “Rdiff-Backup” gurmak üçin (2.0 bar).

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

Köne wersiýalary üçin Ubuntu arka portlarynda Rdiff-Backup gurmak üçin (goldanýan 2.0 gerek).

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

CentOS we RHEL 8-de Rdiff-Backup gurmak (COPR-dan).

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

CentOS we RHEL 7-de Rdiff-Backup gurmak (COPR-dan).

$ 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

Fedora 32+-de Rdiff-Backup gurmak üçin.

$ sudo dnf install rdiff-backup

Linux-da rdiff-ätiýaçlyk nusgasyny nädip ulanmaly

Öň hem belläp geçişim ýaly, rdiff-ätiýaçlyk ulgamyňyzdaky uzakdaky maşynlara birikmek üçin SSH ulanýar, SSH-de deslapky tassyklama, adatça adamyň özara täsirini talap edýän ulanyjy ady/parol usulydyr.

Şeýle-de bolsa, skriptler we ondan soňky awtomatiki ätiýaçlyk ýaly meseleleri awtomatlaşdyrmak üçin aňsat faýl sinhronizasiýasyny ýa-da geçirişini düzmeli bolarsyňyz.

SSH parolsyz girişini guranyňyzdan soň, aşakdaky mysallar bilen skript ulanyp bilersiňiz.

Aşakdaky mysal, başga bir bölümdäki ätiýaçlyk bukjadaky /etc katalogyny ätiýaçlandyrar:

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

Belli bir katalogy we onuň bukjalaryny aýyrmak üçin aşakdaky ýaly --exclude opsiýasyny ulanyp bilersiňiz:

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

Devicehli enjam faýllaryny, fifo faýllaryny, rozetka faýllaryny we simwoliki baglanyşyklary aşakdaky ýaly --include-special-files opsiýasy bilen goşup bileris:

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

Faýl saýlamak üçin başga iki möhüm baýdak bar; --max-file-size ululygy, baýtda berlen ululykdan has uly faýllary we kiçi faýllary hasaba almaýan --min-file-size ululygy berlen ululyk baýtda:

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

Bu bölümiň maksady üçin ulanarys:

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

Öň hem belläp geçişimiz ýaly, iki enjamda-da rdiff-ätiýaçlyk nusgasynyň şol bir wersiýasyny gurmaly, indi wersiýany iki enjamda aşakdaky ýaly barlamaga synanyşyň:

$ rdiff-backup -V

Uptiýaçlyk serwerde ätiýaçlyk faýllary şeýle saklaýan katalog dörediň:

# mkdir -p /backups

Indi ätiýaçlyk serwerden /var uzakdaky Linux serwerinden 192.168.56.102 /var/log/ we /root kataloglarynyň ätiýaçlyk nusgasyny döretmek üçin aşakdaky buýruklary işlediň. ätiýaçlyk nusgalary :

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

Aşakdaky ekran suraty uzakdaky serwerdäki kök faýly 192.168.56.102 we yzky serwerdäki ätiýaçlyk faýllary 192.168.56.10 görkezýär:

Ekranda görkezilişi ýaly ätiýaçlyk katalogynda döredilen rdiff-ätiýaçlyk-maglumat katalogyna üns beriň, ätiýaçlyk prosesi we artýan faýllar bilen baglanyşykly möhüm maglumatlary öz içine alýar.

Indi 192.168.56.102 serwerinde aşakda görkezilişi ýaly kök katalogyna goşmaça faýllar goşuldy:

Üýtgedilen maglumatlary almak üçin ätiýaçlyk buýrugyny ýene bir gezek işledeliň, -v [0-9] ulanyp bileris (bu ýerde san sözleýiş derejesini kesgitleýär, default 3 dymýar) opsiýasyny ulanyp bileris sözleýiş aýratynlygyny düzüň:

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

We /backups/192.168.56.102_rootfiles.backup katalogyndaky bölekleýin artýan ätiýaçlyk nusgalarynyň sanyny we senesini sanamak üçin işledip bileris:

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

--print-statistika bilen üstünlikli ätiýaçlykdan soň gysgaça statistikany çap edip bileris. Şeýle-de bolsa, bu opsiýany kesgitlemesek, maglumatlar sessiýa statistika faýlyndan elýeterli bolar. Bu opsiýa barada has giňişleýin maglumat adam sahypasynyň STATISTICS bölüminde.

“Remote-shema” baýdagy uzakdaky kompýutere birikmegiň alternatiw usulyny kesgitlemäge mümkinçilik berýär.

Indi, 192.168.56.10 ätiýaçlyk serwerinde backup.sh skriptini döretmekden başlalyň:

# cd ~/bin
# vi backup.sh

Scriptazgy faýlyna aşakdaky setirleri goşuň.

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

Faýly ýazdyryň we çykyň, soňra ätiýaçlyk serwerdäki skontta skript goşmak üçin aşakdaky buýrugy işlediň 192.168.56.10:

# crontab -e

Her gün ýary gije ätiýaçlyk skriptiňizi işletmek üçin şu setiri goşuň:

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

Kontabty tygşytlaň we ýapyň, indi ätiýaçlyk amalyny üstünlikli awtomatlaşdyrdyk. Garaşylyşy ýaly işleýändigine göz ýetiriň.

Goşmaça maglumat, doly ulanyş opsiýalary we mysallar üçin rdiff-ätiýaçlyk adam sahypasyny okaň:

# man rdiff-backup

rdiff-ätiýaçlyk Baş sahypa: http://www.nongnu.org/rdiff-backup/

Häzirlikçe! Bu gollanmada, Linux-da ýerli/uzakdan artýan ätiýaçlyk ätiýaçlyk üçin ulanmak aňsat bolan Python skriptini rdiff-ätiýaçlyk nusgasyny nädip gurmalydygyny we ulanmalydygyny görkezdik. Aşakdaky seslenme bölüminiň üsti bilen pikirleriňizi biziň bilen paýlaşyň.