rdiff-chelezo - Zana ya Hifadhi Nakala ya Mbali ya Linux


rdiff-backup ni hati yenye nguvu na rahisi kutumia ya Python kwa nakala rudufu ya ndani/mbali, ambayo inafanya kazi kwenye mfumo wowote wa uendeshaji wa POSIX kama vile Linux, Mac OS X au Cygwin. Inaleta pamoja vipengele vya ajabu vya kioo na hifadhi ya ziada.

Kwa kiasi kikubwa, huhifadhi saraka ndogo, faili za dev, viungo ngumu, na sifa muhimu za faili kama vile ruhusa, umiliki wa uid/gid, nyakati za urekebishaji, sifa zilizopanuliwa, acls na uma za rasilimali. Inaweza kufanya kazi katika hali ya ufanisi wa kipimo data juu ya bomba, kwa njia sawa na zana maarufu ya chelezo ya rsync.

rdiff-backup hucheleza saraka moja hadi nyingine kwenye mtandao kwa kutumia SSH, ikimaanisha kuwa uhamishaji wa data umesimbwa kwa njia fiche kwa hivyo ni salama. Saraka inayolengwa (kwenye mfumo wa mbali) huishia nakala halisi ya saraka ya chanzo, hata hivyo tofauti za ziada za kinyume huhifadhiwa katika orodha ndogo ndogo kwenye saraka inayolengwa, na kuifanya iwezekane kurejesha faili zilizopotea wakati fulani uliopita.

Ili kutumia rdiff-backup katika Linux, utahitaji vifurushi vifuatavyo vilivyosakinishwa kwenye mfumo wako:

  • Python v2.2 au matoleo mapya zaidi
  • librsync v0.9.7 au matoleo mapya zaidi
  • moduli za pylibacl na pyxattr Python ni za hiari lakini zinahitajika kwa orodha ya udhibiti wa ufikiaji wa POSIX (ACL) na usaidizi wa sifa uliopanuliwa mtawalia.
  • rdiff-backup-statistics inahitaji Python v2.4 au matoleo mapya zaidi.

Jinsi ya kusakinisha rdiff-backup katika Linux

Muhimu: Ikiwa unafanya kazi kwenye mtandao, itabidi usakinishe rdiff-chelezo mifumo yote miwili, ikiwezekana usakinishaji wote wa hifadhi rudufu ya rdiff utalazimika kuwa toleo sawa kabisa.

Maandishi tayari yapo kwenye hazina rasmi za usambazaji wa Linux kuu, endesha tu amri hapa chini ili kusakinisha rdiff-backup pamoja na utegemezi wake:

Ili kusakinisha Rdiff-Backup kwenye Ubuntu Focal au Debian Bullseye au mpya zaidi (ina 2.0).

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

Ili kusakinisha Rdiff-Backup kwenye backports za Ubuntu kwa matoleo ya zamani (inahitaji 2.0 iliyorejeshwa).

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

Ili kusakinisha Rdiff-Backup kwenye CentOS na RHEL 8 (kutoka COPR).

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

Ili kusakinisha Rdiff-Backup kwenye CentOS na RHEL 7 (kutoka 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

Ili kusakinisha Rdiff-Backup kwenye Fedora 32+.

$ sudo dnf install rdiff-backup

Jinsi ya kutumia rdiff-backup katika Linux

Kama nilivyotaja hapo awali, rdiff-backup hutumia SSH kuunganishwa na mashine za mbali kwenye mtandao wako, na uthibitishaji chaguo-msingi katika SSH ni jina la mtumiaji/nenosiri, ambayo kwa kawaida huhitaji mwingiliano wa binadamu.

Hata hivyo, ili kufanyia kazi otomatiki kama vile hifadhi rudufu za kiotomatiki zilizo na hati na zaidi, utahitaji kusanidi ulandanishi rahisi wa faili au uhamishaji.

Mara baada ya kusanidi Kuingia Bila Nenosiri la SSH, unaweza kuanza kutumia hati na mifano ifuatayo.

Mfano ulio hapa chini utahifadhi nakala ya saraka ya /etc katika saraka ya Hifadhi nakala kwenye kizigeu kingine:

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

Ili kutenga saraka fulani pamoja na saraka zake ndogo, unaweza kutumia chaguo la --exclude kama ifuatavyo:

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

Tunaweza kujumuisha faili zote za kifaa, faili za fifo, faili za soketi na viungo vya ishara kwa chaguo la --include-special-files kama ilivyo hapo chini:

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

Kuna bendera zingine mbili muhimu ambazo tunaweza kuweka kwa uteuzi wa faili; --max-file-size ambayo haijumuishi faili ambazo ni kubwa kuliko ukubwa uliotolewa katika baiti na ukubwa wa --min-file-size ambao haujumuishi faili ndogo kuliko saizi uliyopewa kwa baiti:

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

Kwa madhumuni ya sehemu hii, tutatumia:

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

Kama tulivyosema hapo awali, lazima usakinishe toleo sawa la rdiff-backup kwenye mashine zote mbili, sasa jaribu kuangalia toleo kwenye mashine zote mbili kama ifuatavyo:

$ rdiff-backup -V

Kwenye seva ya chelezo, tengeneza saraka ambayo itahifadhi faili za chelezo kama hivyo:

# mkdir -p /backups

Sasa kutoka kwa seva mbadala, endesha amri zifuatazo ili kutengeneza hifadhi rudufu ya saraka /var/log/ na /root kutoka kwa seva ya mbali ya Linux 192.168.56.102 katika / chelezo:

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

Picha ya skrini iliyo hapa chini inaonyesha faili ya mizizi kwenye seva ya mbali 192.168.56.102 na faili zilizochelezwa kwenye seva ya nyuma 192.168.56.10:

Zingatia saraka ya rdiff-backup-data iliyoundwa katika saraka ya chelezo kama inavyoonekana kwenye picha ya skrini, ina data muhimu kuhusu mchakato wa kuhifadhi nakala na faili za nyongeza.

Sasa, kwenye seva 192.168.56.102, faili za ziada zimeongezwa kwenye saraka ya mizizi kama inavyoonyeshwa hapa chini:

Wacha tuendeshe amri ya chelezo kwa mara nyingine tena ili kupata data iliyobadilishwa, tunaweza kutumia chaguo la -v[0-9] (ambapo nambari inabainisha kiwango cha kitenzi, chaguo-msingi ni 3 ambacho ni kimya) weka kipengele cha verbosity:

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

Na kuorodhesha nambari na tarehe ya nakala rudufu za sehemu zilizomo kwenye saraka /backups/192.168.56.102_rootfiles.backup, tunaweza kuendesha:

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

Tunaweza kuchapisha takwimu za muhtasari baada ya kuhifadhi nakala kwa mafanikio na --print-statistics. Hata hivyo, tusipoweka chaguo hili, maelezo bado yatapatikana kutoka kwa faili ya takwimu za kipindi. Soma zaidi kuhusu chaguo hili katika sehemu ya TAKWIMU ya ukurasa wa mwanamume.

Na alama ya -remote-schema hutuwezesha kubainisha mbinu mbadala ya kuunganisha kwenye kompyuta ya mbali.

Sasa, wacha tuanze kwa kuunda hati ya backup.sh kwenye seva mbadala 192.168.56.10 kama ifuatavyo:

# cd ~/bin
# vi backup.sh

Ongeza mistari ifuatayo kwenye faili ya hati.

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

Hifadhi faili na uondoke, kisha endesha amri ifuatayo ili kuongeza hati kwenye crontab kwenye seva ya chelezo 192.168.56.10:

# crontab -e

Ongeza laini hii ili kuendesha hati yako ya chelezo kila siku saa sita usiku:

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

Hifadhi crontab na uifunge, sasa tumefaulu kufanya mchakato wa kuhifadhi nakala kiotomatiki. Hakikisha kuwa inafanya kazi kama inavyotarajiwa.

Soma kupitia ukurasa wa rdiff-backup man kwa habari zaidi, chaguzi kamili za utumiaji na mifano:

# man rdiff-backup

Ukurasa wa nyumbani wa rdiff: http://www.nongnu.org/rdiff-backup/

Ni hayo kwa sasa! Katika somo hili, tulikuonyesha jinsi ya kusakinisha na kimsingi kutumia rdiff-backup, hati ya Python iliyo rahisi kutumia kwa hifadhi rudufu ya ndani/mbali ya Linux. Shiriki mawazo yako nasi kupitia sehemu ya maoni hapa chini.