rdiff-backup - Ngwá ọrụ nkwado ndabere dịpụrụ adịpụ maka Linux


rdiff-backup bụ edemede Python dị ike ma dị mfe iji maka nkwado ndabere mpaghara/ime ime, nke na-arụ ọrụ na sistemụ arụmọrụ POSIX ọ bụla dị ka Linux, Mac OS X ma ọ bụ Cygwin. Ọ na-achịkọta atụmatụ dị ịrịba ama nke enyo na nkwado ndabere na-abawanye.

N'ụzọ dị ịrịba ama, ọ na-echekwa subdirectories, dev faịlụ, njikọ siri ike, na àgwà faịlụ dị egwu dị ka ikike, uid/nwe gid, oge mgbanwe, àgwà agbatị, acls, na ndụdụ akụrụngwa. Ọ nwere ike ịrụ ọrụ na ọnọdụ bandwidth na-arụ ọrụ nke ọma n'elu ọkpọkọ, n'otu aka ahụ dị ka ngwá ọrụ nkwado rsync na-ewu ewu.

rdiff-backup na-akwado otu ndekọ aha na onye ọzọ na netwọk site na iji SSH, na-egosi na ezoro ezo nyefe data wee chekwaa ya. Akwụkwọ ndekọ aha (na sistemụ dịpụrụ adịpụ) na-ejedebe otu akwụkwọ ndekọ aha nke isi mmalite, n'agbanyeghị na a na-echekwa ọdịiche dị iche iche na subdirectory pụrụ iche na ndekọ ndekọ aha, na-eme ka o kwe omume ị nwetaghachi faịlụ furu efu oge ụfọdụ gara aga.

Iji jiri rdiff-backup na Linux, ị ga-achọ ngwugwu ndị a arụnyere na sistemụ gị:

  • Python v2.2 ma ọ bụ karịa
  • librsync v0.9.7 ma ọ bụ karịa
  • Pylibacl na pyxattr Python modul bụ nhọrọ mana ọ dị mkpa maka ndepụta njikwa ohere POSIX(ACL) yana nkwado àgwà agbatịkwuru n'otu n'otu.
  • rdiff-backup-statistics chọrọ Python v2.4 ma ọ bụ karịa.

Otu esi etinye rdiff-backup na Linux

Ihe dị mkpa: Ọ bụrụ na ị na-arụ ọrụ na netwọkụ, ị ga-etinyerịrị rdiff-ndabere na sistemụ abụọ, ọkacha mma nrụnye rdiff-backup ga-abụrịrị otu ụdị.

Edemede a adịlarị na ebe nchekwa gọọmentị nke nkesa Linux bụ isi, mee naanị iwu dị n'okpuru iji wụnye rdiff-ndabere yana dabere na ya:

Iji tinye Rdiff-Backup na Ubuntu Focal ma ọ bụ Debian Bullseye ma ọ bụ nke ọhụrụ (nwere 2.0).

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

Iji wụnye Rdiff-Backup na Ubuntu backports maka ụdị ochie (chọrọ 2.0 azụ azụ).

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

Iji tinye Rdiff-Backup na CentOS na RHEL 8 (site na COPR).

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

Iji tinye Rdiff-Backup na CentOS na RHEL 7 (site na 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

Iji tinye Rdiff-Backup na Fedora 32+.

$ sudo dnf install rdiff-backup

Otu esi eji rdiff-backup na Linux

Dịka m kwuru na mbụ, rdiff-backup na-eji SSH jikọọ na igwe ndị dịpụrụ adịpụ na netwọk gị, yana nkwenye ndabara na SSH bụ aha njirimara/paswọọdụ, nke na-achọkarị mmekọrịta mmadụ.

Agbanyeghị, iji megharịa ọrụ dị ka nkwado ndabere na mpaghara akpaka na scripts na gafere, ị ga-achọ ịhazi mmekọrịta ma ọ bụ mbufe faịlụ dị mfe.

Ozugbo i mebere SSH Passwordless Login, ị nwere ike ịmalite iji ihe atụ ndị a malite iji edemede ahụ.

Ọmụmaatụ dị n'okpuru ga-akwado ndekọ /etc na ndekọ ndabere na nkebi ọzọ:

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

Iji wepu otu akwụkwọ ndekọ aha yana ọ bụ subdirectories, ị nwere ike iji nhọrọ -ewepu dị ka ndị a:

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

Anyị nwere ike ịgụnye faịlụ ngwaọrụ niile, faịlụ fifo, faịlụ sọket, na njikọ ihe atụ nwere nhọrọ --gụnyere-special-faịlụ dị ka n'okpuru:

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

Enwere ọkọlọtọ abụọ dị mkpa anyị nwere ike ịtọ maka nhọrọ faịlụ; --max-file-size nha nke na-ewepu faịlụ ndị buru ibu karịa nha enyere na bytes na -min-file-size nha nke na-ewepu faịlụ ndị pere mpe karịa. nha enyere na bytes:

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

Maka ebumnuche nke ngalaba a, anyị ga-eji:

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

Dị ka anyị kwuru na mbụ, ị ga-etinyerịrị otu ụdị nke rdiff-backup na igwe abụọ ahụ, gbalịa ugbu a ịlele ụdị na igwe abụọ ahụ dị ka ndị a:

$ rdiff-backup -V

Na nkesa ndabere, mepụta ndekọ nke ga-echekwa faịlụ ndabere dị ka nke a:

# mkdir -p /backups

Ugbu a site na ihe nkesa ndabere, mee iwu ndị a iji mee nkwado ndabere nke akwụkwọ ndekọ aha /var/log/ na /mgbọrọgwụ site na sava Linux dịpụrụ adịpụ 192.168.56.102 na / ndabere :

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

Nseta ihuenyo dị n'okpuru na-egosi faịlụ mgbọrọgwụ na sava dịpụrụ adịpụ 192.168.56.102 yana faịlụ akwadoro na sava azụ 192.168.56.10:

Rịba ama akwụkwọ ndekọ data rdiff-backup-data emebere na ndekọ ndabere dị ka a hụrụ na nseta ihuenyo, o nwere data dị mkpa gbasara usoro ndabere yana faịlụ agbakwunyere.

Ugbu a, na sava 192.168.56.102, agbakwunyela faịlụ ndị ọzọ na ndekọ mgbọrọgwụ dị ka egosiri n'okpuru:

Ka anyị na-agba ọsọ ndabere iwu otu ugboro ọzọ iji nweta data gbanwere, anyị nwere ike iji -v[0-9] (ebe ọnụọgụ na-akọwa ọkwa verbosity, ndabara bụ 3 nke dị jụụ) nhọrọ ka tọọ njirimara verbosity:

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

Na iji depụta ọnụọgụ na ụbọchị nke nkwado ndabere na mpaghara agbakwunyere dị na /backups/192.168.56.102_rootfiles.backup ndekọ, anyị nwere ike ịgba ọsọ:

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

Anyị nwere ike ibipụta ọnụ ọgụgụ nchịkọta mgbe nkwado ndabere na mpaghara gara nke ọma jiri --print-statistics. Agbanyeghị, ọ bụrụ na anyị edoghị nhọrọ a, ozi ahụ ka ga-adị na faịlụ ọnụ ọgụgụ nnọkọ. Gụkwuo gbasara nhọrọ a na ngalaba Statistics nke ibe nwoke.

Ọkọlọtọ –remote-schema na-enyere anyị aka ịkọwapụta usoro ọzọ nke ijikọ na kọmputa dịpụrụ adịpụ.

Ugbu a, ka anyị bido site na ịmepụta backup.sh script na ihe nkesa ndabere 192.168.56.10 dị ka ndị a:

# cd ~/bin
# vi backup.sh

Tinye ahịrị ndị a na faịlụ edemede.

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

Chekwaa faịlụ ahụ wee pụọ, wee gbaa iwu a ka ịgbakwunye script na crontab na ihe nkesa ndabere 192.168.56.10:

# crontab -e

Tinye ahịrị a iji mee edemede ndabere gị kwa ụbọchị n'etiti abalị:

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

Chekwaa crontab wee mechie ya, ugbu a, anyị emeela usoro nkwado ndabere na mpaghara nke ọma. Gbaa mbọ hụ na ọ na-arụ ọrụ dịka a tụrụ anya ya.

Gụọ site na ibe rdiff-backup man maka ozi ndị ọzọ, nhọrọ ojiji na ihe atụ zuru oke:

# man rdiff-backup

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

Nke ahụ bụ maka ugbu a! N'ime nkuzi a, anyị gosiri gị otu esi etinye ma jiri rdiff-backup mee ihe, script Python dị mfe iji maka nkwado ndabere mpaghara/ime ime na Linux. Gwa anyị echiche gị site na ngalaba nzaghachi n'okpuru.