rdiff-backup - Usa ka Remote Incremental Backup Tool alang sa Linux


Ang rdiff-backup usa ka kusgan ug dali gamiton nga script sa Python para sa lokal/hilit nga incremental backup, nga magamit sa bisan unsang POSIX operating system sama sa Linux, Mac OS X o Cygwin. Gihiusa niini ang talagsaon nga mga bahin sa usa ka salamin ug usa ka incremental backup.

Mahinungdanon, gipreserbar niini ang mga subdirektoryo, mga file sa dev, mga gahi nga link, ug mga kritikal nga mga hiyas sa file sama sa mga pagtugot, pagpanag-iya sa uid/gid, mga oras sa pagbag-o, gipalawig nga mga hiyas, acls, ug mga tinidor sa kapanguhaan. Mahimo kini nga molihok sa usa ka bandwidth-efficient mode sa usa ka pipe, sa parehas nga paagi sama sa sikat nga rsync backup tool.

Ang rdiff-backup nag-back up sa usa ka direktoryo ngadto sa lain sa usa ka network gamit ang SSH, nga nagpasabot nga ang pagbalhin sa data na-encrypt sa ingon luwas. Ang target nga direktoryo (sa hilit nga sistema) nagtapos sa usa ka eksaktong kopya sa gigikanan nga direktoryo, bisan pa ang dugang nga reverse diffs gitipigan sa usa ka espesyal nga subdirectory sa target nga direktoryo, nga nagpaposible nga mabawi ang mga file nga nawala kaniadto.

Aron magamit ang rdiff-backup sa Linux, kinahanglan nimo ang mosunud nga mga pakete nga na-install sa imong sistema:

  • Python v2.2 o sa ulahi
  • librsync v0.9.7 o sa ulahi
  • Ang pylibacl ug pyxattr Python modules kay opsyonal apan gikinahanglan para sa POSIX access control list(ACL) ug gipalugwayan nga attribute nga suporta matag usa.
  • rdiff-backup-statistics nagkinahanglan Python v2.4 o sa ulahi.

Giunsa ang Pag-install sa rdiff-backup sa Linux

Importante: Kung nag-operate ka sa usa ka network, kinahanglan nimo nga i-install ang rdiff-backup sa duha nga mga sistema, mas maayo nga ang duha nga pag-install sa rdiff-backup kinahanglan nga parehas nga bersyon.

Ang script anaa na sa opisyal nga mga repository sa mainstream nga mga distribusyon sa Linux, padagana lang ang command sa ubos aron i-install ang rdiff-backup ingon man ang mga dependency niini:

Aron i-install ang Rdiff-Backup sa Ubuntu Focal o Debian Bullseye o mas bag-o (adunay 2.0).

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

Aron ma-install ang Rdiff-Backup sa mga backport sa Ubuntu alang sa mga daan nga bersyon (kinahanglan usa ka backported 2.0).

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

Aron i-install ang Rdiff-Backup sa CentOS ug RHEL 8 (gikan sa COPR).

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

Aron i-install ang Rdiff-Backup sa CentOS ug RHEL 7 (gikan sa 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

Aron i-install ang Rdiff-Backup sa Fedora 32+.

$ sudo dnf install rdiff-backup

Giunsa Paggamit ang rdiff-backup sa Linux

Sama sa akong gihisgutan kaniadto, ang rdiff-backup naggamit sa SSH aron makonektar sa hilit nga mga makina sa imong network, ug ang default nga authentication sa SSH mao ang username/password nga paagi, nga kasagaran nagkinahanglan sa tawhanong interaksyon.

Bisan pa, aron ma-automate ang mga buluhaton sama sa awtomatikong pag-backup nga adunay mga script ug sa unahan, kinahanglan nimo nga i-configure ang dali nga pag-synchronize o pagbalhin sa file.

Kung na-setup na nimo ang SSH Passwordless Login, mahimo nimong sugdan ang paggamit sa script sa mga mosunod nga mga pananglitan.

Ang pananglitan sa ubos mag-backup sa /etc nga direktoryo sa usa ka Backup nga direktoryo sa laing partisyon:

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

Aron dili iapil ang usa ka partikular nga direktoryo ingon man ang mga subdirektoryo niini, mahimo nimong gamiton ang --exclude nga kapilian sama sa mosunod:

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

Mahimo natong iapil ang tanang mga file sa device, fifo files, socket files, ug simbolikong mga link nga adunay --include-special-files nga opsyon sama sa ubos:

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

Adunay duha pa ka importante nga mga bandila nga mahimo natong itakda alang sa pagpili sa file; --max-file-size nga gidak-on nga wala maglakip sa mga file nga mas dako kay sa gihatag nga gidak-on sa bytes ug --min-file-size nga gidak-on nga wala'y apil ang mga file nga mas gamay kay sa ang gihatag nga gidak-on sa bytes:

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

Alang sa katuyoan niini nga seksyon, among gamiton:

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

Sama sa among giingon kaniadto, kinahanglan nimo nga i-install ang parehas nga bersyon sa rdiff-backup sa parehas nga mga makina, karon sulayi nga susihon ang bersyon sa parehas nga mga makina sama sa mosunod:

$ rdiff-backup -V

Sa backup nga server, paghimo usa ka direktoryo nga magtipig sa mga backup nga file sama sa:

# mkdir -p /backups

Karon gikan sa backup server, padagana ang mosunod nga mga sugo aron makahimo og backup sa mga direktoryo /var/log/ ug /root gikan sa hilit nga Linux server 192.168.56.102 sa / mga backup:

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

Ang screenshot sa ubos nagpakita sa root file sa hilit nga server 192.168.56.102 ug ang gipaluyohan nga mga file sa likod nga server 192.168.56.10:

Timan-i ang rdiff-backup-data nga direktoryo nga gihimo sa backup nga direktoryo sama sa makita sa screenshot, kini adunay importante nga datos mahitungod sa backup nga proseso ug incremental files.

Karon, sa server 192.168.56.102, dugang nga mga file ang gidugang sa root directory sama sa gipakita sa ubos:

Atong padaganon ang backup command sa makausa pa aron makuha ang nausab nga datos, mahimo natong gamiton ang -v[0-9] (diin ang numero nagtino sa verbosity level, default mao ang 3 nga hilom) nga opsyon sa ibutang ang verbosity feature:

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

Ug aron ilista ang gidaghanon ug petsa sa partial incremental backups nga anaa sa /backups/192.168.56.102_rootfiles.backup nga direktoryo, mahimo natong padaganon:

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

Maka-print mi og summary statistics human sa malampusong backup gamit ang --print-statistics. Bisan pa, kung dili namon itakda kini nga kapilian, ang impormasyon magamit gihapon gikan sa file sa istatistika sa sesyon. Basaha ang dugang mahitungod niini nga opsyon sa STATISTICS nga seksyon sa man page.

Ug ang -remote-schema nga bandila makapahimo kanamo sa pagtino sa usa ka alternatibong pamaagi sa pagkonektar sa usa ka hilit nga kompyuter.

Karon, magsugod ta pinaagi sa paghimo og backup.sh script sa backup server 192.168.56.10 sama sa mosunod:

# cd ~/bin
# vi backup.sh

Idugang ang mosunod nga mga linya sa script file.

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

I-save ang file ug exit, dayon padagana ang mosunod nga command aron idugang ang script sa crontab sa backup server 192.168.56.10:

# crontab -e

Idugang kini nga linya aron ipadagan ang imong backup nga script kada adlaw sa tungang gabii:

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

I-save ang crontab ug isira kini, karon nagmalampuson kami nga awtomatiko ang proseso sa pag-backup. Siguroha nga kini nagtrabaho sama sa gipaabut.

Basaha ang panid sa rdiff-backup nga tawo alang sa dugang nga impormasyon, kompleto nga mga kapilian sa paggamit ug mga pananglitan:

# man rdiff-backup

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

Mao na sa pagkakaron! Sa kini nga panudlo, gipakita namon kanimo kung giunsa ang pag-install ug sukaranan nga paggamit sa rdiff-backup, usa ka dali gamiton nga script sa Python alang sa lokal/layo nga incremental backup sa Linux. Ipakigbahin ang imong mga hunahuna kanamo pinaagi sa seksyon sa feedback sa ubos.