rdiff-backup - Kayan aikin Ajiyayyen Ƙaruwa mai Nisa don Linux


rdiff-backup shine rubutun Python mai ƙarfi kuma mai sauƙin amfani don madadin ƙarawa na gida/nesa, wanda ke aiki akan kowane tsarin aiki na POSIX kamar Linux, Mac OS X ko Cygwin. Yana haɗa abubuwan ban mamaki na madubi da ƙarin ajiyar ajiya.

Mahimmanci, yana adana ƙananan litattafai, fayilolin dev, hanyoyin haɗin kai, da halayen fayil masu mahimmanci kamar izini, ikon mallakar uid/gid, lokutan gyare-gyare, ƙarin halaye, acls, da cokali mai yatsu na albarkatu. Yana iya aiki a cikin yanayin ingantaccen bandwidth akan bututu, a cikin irin wannan hanya kamar sanannen kayan aikin madadin rsync.

rdiff-backup yana adana adireshi ɗaya zuwa wani akan hanyar sadarwa ta amfani da SSH, yana nuna cewa an rufaffen canja wurin bayanai don haka amintattu. Littafin da aka yi niyya (a kan tsarin nesa) yana ƙare ainihin kwafin kundin tushen, duk da haka ana adana ƙarin bambance-bambance a cikin babban kundin adireshi na musamman a cikin kundin adireshi, yana ba da damar dawo da fayilolin da suka ɓace wani lokaci da suka wuce.

Don amfani da rdiff-backup a cikin Linux, kuna buƙatar fakiti masu zuwa da aka shigar akan tsarin ku:

  • Python v2.2 ko kuma daga baya
  • librsync v0.9.7 ko kuma daga baya
  • pylibacl da pyxattr Python kayayyaki na zaɓi ne amma sun zama dole don jerin ikon samun damar POSIX (ACL) da ƙarin tallafin sifa bi da bi.
  • rdiff-backup-statistics yana buƙatar Python v2.4 ko kuma daga baya.

Yadda ake Sanya rdiff-backup a cikin Linux

Muhimmi: Idan kuna aiki akan hanyar sadarwa, dole ne ku shigar da rdiff-backup duka tsarin biyu, zai fi dacewa duka shigarwar rdiff-backup dole su kasance daidai sigar iri ɗaya.

Rubutun ya riga ya kasance a cikin ma'ajiyar hukuma na babban rabon Linux, kawai gudanar da umarnin da ke ƙasa don shigar da rdiff-backup da kuma abubuwan dogaronsa:

Don shigar da Rdiff-Backup akan Ubuntu Focal ko Debian Bullseye ko sabo (yana da 2.0).

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

Don shigar da Rdiff-Backup akan Ubuntu backports don tsofaffin nau'ikan (yana buƙatar 2.0 mai baya).

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

Don shigar da Rdiff-Backup akan CentOS da RHEL 8 (daga COPR).

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

Don shigar da Rdiff-Backup akan CentOS da RHEL 7 (daga 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

Don shigar da Rdiff-Backup akan Fedora 32+.

$ sudo dnf install rdiff-backup

Yadda ake Amfani da rdiff-backup a cikin Linux

Kamar yadda na ambata a baya, rdiff-backup yana amfani da SSH don haɗawa zuwa na'urori masu nisa a kan hanyar sadarwar ku, kuma ingantaccen tabbaci a cikin SSH shine hanyar sunan mai amfani/kalmar sirri, wanda yawanci yana buƙatar hulɗar ɗan adam.

Duk da haka, don sarrafa ayyuka kamar su madadin atomatik tare da rubutun da kuma bayan haka, kuna buƙatar saita aiki tare ko canja wurin fayil mai sauƙi.

Da zarar kun saita SSH Passwordless Login, zaku iya fara amfani da rubutun tare da misalai masu zuwa.

Misalin da ke ƙasa zai adana kundin adireshi na /da sauransu a cikin kundin Ajiyayyen akan wani bangare:

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

Don keɓance takamaiman kundin adireshi da kuma kundin adireshi, zaku iya amfani da zaɓin - ban da kamar haka:

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

Za mu iya haɗa duk fayilolin na'ura, fayilolin fifo, fayilolin soket, da hanyoyin haɗin kai na alama tare da zaɓin --include-special-files kamar ƙasa:

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

Akwai wasu mahimman tutoci guda biyu da za mu iya saita don zaɓin fayil; Girman --max-file-size wanda ke ware fayilolin da suka fi girman girman da aka bayar a cikin bytes da --min-file-size girman wanda ke ware fayilolin da suka fi ƙanƙanta. girman da aka bayar a cikin bytes:

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

Don manufar wannan sashe, za mu yi amfani da:

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

Kamar yadda muka fada a baya, dole ne ku shigar da nau'in rdiff-backup iri ɗaya akan injinan biyu, yanzu kuyi ƙoƙarin bincika sigar akan na'urori biyu kamar haka:

$ rdiff-backup -V

A kan uwar garken madadin, ƙirƙiri kundin adireshi wanda zai adana fayilolin ajiyar kamar haka:

# mkdir -p /backups

Yanzu daga uwar garken madadin, gudanar da waɗannan umarni don yin ajiyar kundayen adireshi /var/log/ da /tushen daga sabar Linux mai nisa 192.168.56.102 a cikin / madadin :

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

Hoton hoton da ke ƙasa yana nuna tushen fayil ɗin akan uwar garken nesa 192.168.56.102 da fayilolin da aka goyi baya akan uwar garken baya 192.168.56.10:

Kula da kundin bayanan bayanan rdiff-backup da aka ƙirƙira a cikin kundin adireshi na majiɓinci kamar yadda aka gani a cikin hoton allo, yana ƙunshe da mahimman bayanai game da tsarin wariyar ajiya da ƙarin fayiloli.

Yanzu, akan uwar garken 192.168.56.102, an ƙara ƙarin fayiloli zuwa tushen directory kamar yadda aka nuna a ƙasa:

Bari mu sake aiwatar da umarnin madadin sau ɗaya don samun bayanan da aka canza, za mu iya amfani da -v[0-9] (inda lambar ta ƙayyade matakin magana, tsoho shine 3 wanda yake shiru) zaɓi don zuwa saita fasalin magana:

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

Kuma don lissafta lamba da kwanan wata na juzu'i na kari da ke ƙunshe a cikin /backups/192.168.56.102_rootfiles.backup directory, za mu iya gudu:

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

Za mu iya buga ƙididdiga taƙaice bayan samun nasarar wariyar ajiya tare da --print-statistics. Koyaya, idan ba mu saita wannan zaɓi ba, bayanin zai kasance yana samuwa daga fayil ɗin ƙididdiga na zaman. Kara karantawa game da wannan zaɓi a cikin sashin kididdiga na shafin mutum.

Kuma tutar –remote-schema tana ba mu damar tantance madadin hanyar haɗi zuwa kwamfuta mai nisa.

Yanzu, bari mu fara da ƙirƙirar rubutun backup.sh akan uwar garken madadin 192.168.56.10 kamar haka:

# cd ~/bin
# vi backup.sh

Ƙara layin masu zuwa zuwa fayil ɗin rubutun.

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

Ajiye fayil ɗin kuma fita, sannan gudanar da umarni mai zuwa don ƙara rubutun zuwa crontab akan uwar garken madadin 192.168.56.10:

# crontab -e

Ƙara wannan layin don gudanar da rubutun madadin ku kullum da tsakar dare:

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

Ajiye crontab kuma rufe shi, yanzu mun yi nasarar sarrafa tsarin madadin ta atomatik. Tabbatar cewa yana aiki kamar yadda aka zata.

Karanta ta shafin mutum na rdiff-backup don ƙarin bayani, cikakkun zaɓuɓɓukan amfani da misalai:

# man rdiff-backup

Shafin Farko na rdiff-backup: http://www.nongnu.org/rdiff-backup/

Shi ke nan a yanzu! A cikin wannan koyawa, mun nuna muku yadda ake shigarwa da kuma amfani da rdiff-backup, rubutun Python mai sauƙi don amfani don ƙarawa na gida/nesa a cikin Linux. Yi raba ra'ayoyin ku tare da mu ta sashin ra'ayoyin da ke ƙasa.