rdiff-afẹyinti - Ọpa Afikun Afikun Afẹyinti fun Lainos


rdiff-afẹyinti jẹ alagbara ati irọrun-lati-lo iwe afọwọkọ Python fun agbegbe/afẹyinti afikun afikun, eyiti o ṣiṣẹ lori eyikeyi eto iṣẹ POSIX bii Linux, Mac OS X tabi Cygwin. O mu awọn ẹya iyalẹnu ti digi jọ ati afẹyinti afikun.

Ni pataki, o tọju awọn ipin-iṣẹ, awọn faili dev, awọn ọna asopọ lile, ati awọn abuda faili pataki bi awọn igbanilaaye, nini uid/gid, awọn akoko iyipada, awọn abuda ti o gbooro sii, acls, ati awọn orita orisun. O le ṣiṣẹ ni ipo ṣiṣe bandwidth-daradara lori paipu kan, ni ọna ti o jọra bi ọpa afẹyinti rsync olokiki.

rdiff-afẹyinti ṣe atilẹyin itọsọna kan si omiiran lori nẹtiwọọki nipa lilo SSH, ni itumọ pe gbigbe data ti wa ni paroko bayi ni aabo. Ilana itọsọna (lori eto latọna jijin) pari ẹda gangan ti itọsọna orisun, sibẹsibẹ awọn iyatọ iyatọ miiran ti wa ni fipamọ ni itọsọna-kekere pataki ninu itọsọna afojusun, ṣiṣe ki o ṣee ṣe lati bọsipọ awọn faili ti o sọnu ni igba diẹ sẹhin.

Lati lo rdiff-afẹyinti ni Linux, iwọ yoo nilo awọn idii atẹle ti a fi sori ẹrọ rẹ:

  • Python v2.2 tabi nigbamii
  • librsync v0.9.7 tabi nigbamii
  • pylibacl ati awọn modulu Pyxattr Python jẹ aṣayan ṣugbọn o ṣe pataki fun POSIX atokọ iṣakoso iwọle (ACL) ati atilẹyin ẹda abule ti o gbooro lẹsẹsẹ.
  • rdiff-backup-statistiki nilo Python v2.4 tabi nigbamii.

Bii o ṣe le Fi rdiff-afẹyinti sii ni Lainos

Pataki: Ti o ba n ṣiṣẹ lori nẹtiwọọki kan, iwọ yoo ni lati fi sori ẹrọ rdiff-afẹyinti awọn ọna ẹrọ mejeeji, pelu awọn fifi sori ẹrọ ti rdiff-afẹyinti yoo ni lati jẹ ẹya kanna.

Iwe afọwọkọ wa tẹlẹ ninu awọn ibi ipamọ osise ti awọn kaakiri awọn kaakiri Linux, nirọrun ṣiṣe aṣẹ ni isalẹ lati fi sori ẹrọ rdiff-afẹyinti bii awọn igbẹkẹle rẹ:

Lati fi Rdiff-Afẹyinti sori Focal Ubuntu tabi Debian Bullseye tabi tuntun (ni 2.0).

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

Lati fi Rdiff-Afẹyinti sori awọn iwe-ipamọ Ubuntu fun awọn ẹya ti atijọ (nilo 2.0 ti a fiweranṣẹ).

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

Lati fi Rdiff-Afẹyinti sori CentOS ati RHEL 8 (lati COPR).

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

Lati fi Rdiff-Afẹyinti sori CentOS ati RHEL 7 (lati 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

Lati fi Rdiff-Afẹyinti sori Fedora 32 +.

$ sudo dnf install rdiff-backup

Bii o ṣe le Lo rdiff-afẹyinti ni Linux

Gẹgẹbi Mo ti sọ tẹlẹ, rdiff-afẹyinti nlo SSH lati sopọ si awọn ẹrọ latọna jijin lori nẹtiwọọki rẹ, ati pe aiyipada ijẹrisi ni SSH ni ọna orukọ olumulo/ọrọ igbaniwọle, eyiti o nilo ibaraenisepo eniyan deede.

Sibẹsibẹ, lati ṣe adaṣe awọn iṣẹ ṣiṣe gẹgẹbi awọn afẹyinti adaṣe pẹlu awọn iwe afọwọkọ ati kọja, iwọ yoo nilo lati tunto amuṣiṣẹpọ faili irọrun tabi gbigbe.

Lọgan ti o ba ṣeto Wiwọle Wiwọle Ọrọigbaniwọle SSH, o le bẹrẹ lilo iwe afọwọkọ pẹlu awọn apẹẹrẹ atẹle.

Apẹẹrẹ ti o wa ni isalẹ yoo ṣe afẹyinti /ati be be lo itọsọna ninu itọsọna Afẹyinti lori ipin miiran:

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

Lati ṣe iyasọtọ ilana itọsọna kan bakanna bi o ti jẹ awọn ipin-iṣẹ, o le lo aṣayan -exclude bi atẹle:

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

A le pẹlu gbogbo awọn faili ẹrọ, awọn faili fifo, awọn faili iho, ati awọn ọna asopọ ami apẹẹrẹ pẹlu aṣayan --kikun-pataki-awọn faili bi isalẹ:

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

Awọn asia pataki meji miiran wa ti a le ṣeto fun yiyan faili; --max-file-size iwọn eyiti o fa awọn faili ti o tobi ju iwọn ti a fun lọ ni awọn baiti ati --min-file-size iwọn eyiti o fa awọn faili ti o kere ju iwọn ti a fun ni awọn baiti:

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

Fun idi ti apakan yii, a yoo lo:

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

Gẹgẹbi a ti sọ tẹlẹ, o gbọdọ fi ẹya kanna ti rdiff-afẹyinti sori awọn ẹrọ mejeeji, bayi gbiyanju lati ṣayẹwo ẹya lori awọn ẹrọ mejeeji bi atẹle:

$ rdiff-backup -V

Lori olupin afẹyinti, ṣẹda itọsọna kan ti yoo tọju awọn faili afẹyinti bii bẹẹ:

# mkdir -p /backups

Bayi lati olupin afẹyinti, ṣiṣe awọn ofin wọnyi lati ṣe afẹyinti awọn ilana /var/log/ ati /root lati olupin Linux latọna 192.168.56.102 in /awọn afẹyinti :

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

Sikirinifoto ti o wa ni isalẹ fihan faili gbongbo lori olupin latọna 192.168.56.102 ati awọn faili ti a ṣe afẹyinti lori olupin ẹhin 192.168.56.10:

Ṣe akiyesi itọsọna rdiff-afẹyinti-data ti a ṣẹda ninu afẹyinti ilana bi a ti rii ninu sikirinifoto, o ni data pataki nipa ilana afẹyinti ati awọn faili afikun.

Nisisiyi, lori olupin 192.168.56.102, awọn faili afikun ti ni afikun si itọsọna gbongbo bi a ṣe han ni isalẹ:

Jẹ ki a ṣiṣẹ aṣẹ afẹyinti lẹẹkan si lati gba data ti a yipada, a le lo -v [0-9] (nibiti nọmba naa ṣe afihan ipele ọrọ-ọrọ, aiyipada jẹ 3 eyiti o dakẹ) aṣayan si ṣeto ẹya-ara ọrọ-ọrọ:

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

Ati lati ṣe atokọ nọmba ati ọjọ ti awọn afẹyinti afikun ipin ti o wa ninu /backups/192.168.56.102_rootfiles.backup liana, a le ṣiṣe:

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

A le ṣe atẹjade awọn iṣiro akopọ lẹhin afẹyinti ti aṣeyọri pẹlu -print-statistiki . Sibẹsibẹ, ti a ko ba ṣeto aṣayan yii, alaye naa yoo tun wa lati faili awọn iṣiro igba. Ka diẹ sii nipa aṣayan yii ni apakan Awọn IWE-ọrọ ti oju-iwe eniyan.

Ati asia – Remote-schema n jẹ ki a ṣalaye ọna miiran ti sisopọ si kọnputa latọna jijin.

Bayi, jẹ ki a bẹrẹ nipa ṣiṣẹda backup.sh iwe afọwọkọ lori olupin afẹyinti 192.168.56.10 bi atẹle:

# cd ~/bin
# vi backup.sh

Ṣafikun awọn ila wọnyi si faili afọwọkọ naa.

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

Fipamọ faili naa ki o jade, lẹhinna ṣiṣe aṣẹ atẹle lati ṣafikun iwe afọwọkọ si crontab lori olupin afẹyinti 192.168.56.10:

# crontab -e

Ṣafikun laini yii lati ṣiṣe iwe afọwọkọ afẹyinti rẹ lojoojumọ larin ọganjọ:

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

Fipamọ crontab ki o pa a, bayi a ti ṣaṣeyọri ilana adaṣe adaṣe. Rii daju pe o n ṣiṣẹ bi o ti ṣe yẹ.

Ka nipasẹ oju-iwe eniyan rdiff-afẹyinti fun alaye ni afikun, awọn aṣayan lilo pipe ati awọn apẹẹrẹ:

# man rdiff-backup

oju-iwe akọọkan rdiff-afẹyinti: http://www.nongnu.org/rdiff-backup/

Iyẹn ni fun bayi! Ninu ẹkọ yii, a fihan ọ bi o ṣe le fi sori ẹrọ ati ni ipilẹ lo rdiff-afẹyinti, iwe-kikọ Python rọrun-lati-lo fun agbegbe/afẹyinti afikun afikun ni Linux. Ma ṣe pin awọn ero rẹ pẹlu wa nipasẹ apakan esi ni isalẹ.