rdiff-backup - Linux-നുള്ള ഒരു റിമോട്ട് ഇൻക്രിമെന്റൽ ബാക്കപ്പ് ടൂൾ


rdiff-backup എന്നത് ലിനക്സ്, Mac OS X അല്ലെങ്കിൽ Cygwin പോലുള്ള ഏതൊരു POSIX ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലും പ്രവർത്തിക്കുന്ന ലോക്കൽ/റിമോട്ട് ഇൻക്രിമെന്റൽ ബാക്കപ്പിനുള്ള ശക്തവും ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതുമായ പൈത്തൺ സ്ക്രിപ്റ്റാണ്. ഇത് ഒരു മിററിന്റെ ശ്രദ്ധേയമായ സവിശേഷതകളും വർദ്ധിച്ചുവരുന്ന ബാക്കപ്പും ഒരുമിച്ച് കൊണ്ടുവരുന്നു.

പ്രധാനമായി, ഇത് ഉപഡയറക്uടറികൾ, dev ഫയലുകൾ, ഹാർഡ് ലിങ്കുകൾ, അനുമതികൾ, uid/gid ഉടമസ്ഥത, പരിഷ്uക്കരണ സമയം, വിപുലീകൃത ആട്രിബ്യൂട്ടുകൾ, acls, റിസോഴ്uസ് ഫോർക്കുകൾ എന്നിവ പോലുള്ള നിർണായക ഫയൽ ആട്രിബ്യൂട്ടുകൾ എന്നിവ സംരക്ഷിക്കുന്നു. ജനപ്രിയമായ rsync ബാക്കപ്പ് ടൂളിന് സമാനമായ രീതിയിൽ, ഒരു പൈപ്പിലൂടെ ബാൻഡ്uവിഡ്ത്ത് കാര്യക്ഷമമായ മോഡിൽ ഇതിന് പ്രവർത്തിക്കാനാകും.

rdiff-backup SSH ഉപയോഗിച്ച് ഒരു നെറ്റ്uവർക്കിലൂടെ ഒരൊറ്റ ഡയറക്uടറിയെ മറ്റൊന്നിലേക്ക് ബാക്കപ്പ് ചെയ്യുന്നു, ഇത് ഡാറ്റാ കൈമാറ്റം എൻക്രിപ്റ്റ് ചെയ്തിരിക്കുന്നു എന്ന് സൂചിപ്പിക്കുന്നു. ടാർഗെറ്റ് ഡയറക്uടറി (റിമോട്ട് സിസ്റ്റത്തിൽ) സോഴ്uസ് ഡയറക്uടറിയുടെ കൃത്യമായ പകർപ്പ് നൽകുന്നു, എന്നിരുന്നാലും അധിക റിവേഴ്uസ് ഡിഫുകൾ ടാർഗെറ്റ് ഡയറക്uടറിയിലെ ഒരു പ്രത്യേക സബ്uഡയറക്uടറിയിൽ സംഭരിക്കുന്നു, ഇത് കുറച്ച് മുമ്പ് നഷ്uടമായ ഫയലുകൾ വീണ്ടെടുക്കുന്നത് സാധ്യമാക്കുന്നു.

Linux-ൽ rdiff-backup ഉപയോഗിക്കുന്നതിന്, നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഇനിപ്പറയുന്ന പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്:

  • പൈത്തൺ v2.2 അല്ലെങ്കിൽ അതിനുശേഷമുള്ളത്
  • librsync v0.9.7 അല്ലെങ്കിൽ അതിനുശേഷമുള്ളത്
  • pylibacl, pyxattr പൈത്തൺ മൊഡ്യൂളുകൾ ഓപ്ഷണൽ ആണെങ്കിലും POSIX ആക്സസ് കൺട്രോൾ ലിസ്റ്റിനും (ACL) വിപുലീകൃത ആട്രിബ്യൂട്ട് സപ്പോർട്ടിനും യഥാക്രമം ആവശ്യമാണ്.
  • rdiff-backup-statistics-ന് Python v2.4 അല്ലെങ്കിൽ അതിനുശേഷമുള്ളത് ആവശ്യമാണ്.

Linux-ൽ rdiff-backup എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാം

പ്രധാനപ്പെട്ടത്: നിങ്ങൾ ഒരു നെറ്റ്uവർക്കിലൂടെയാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ, നിങ്ങൾ രണ്ട് സിസ്റ്റങ്ങളും rdiff-backup ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്, വെയിലത്ത് rdiff-backup-ന്റെ രണ്ട് ഇൻസ്റ്റാളേഷനുകളും ഒരേ പതിപ്പായിരിക്കണം.

മുഖ്യധാരാ ലിനക്സ് വിതരണങ്ങളുടെ ഔദ്യോഗിക ശേഖരണങ്ങളിൽ സ്ക്രിപ്റ്റ് ഇതിനകം തന്നെയുണ്ട്, rdiff-backup-ഉം അതിന്റെ ഡിപൻഡൻസികളും ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് താഴെയുള്ള കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

ഉബുണ്ടു ഫോക്കലിലോ Debian Bullseyeയിലോ പുതിയതിലോ Rdiff-Backup ഇൻസ്റ്റാൾ ചെയ്യാൻ (2.0 ഉണ്ട്).

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

പഴയ പതിപ്പുകൾക്കായി ഉബുണ്ടു ബാക്ക്പോർട്ടുകളിൽ Rdiff-Backup ഇൻസ്റ്റാൾ ചെയ്യാൻ (ഒരു ബാക്ക്പോർട്ട് ചെയ്ത 2.0 ആവശ്യമാണ്).

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

CentOS, RHEL 8 എന്നിവയിൽ Rdiff-Backup ഇൻസ്റ്റാൾ ചെയ്യാൻ (COPR-ൽ നിന്ന്).

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

CentOS-ലും RHEL 7-ലും (COPR-ൽ നിന്ന്) Rdiff-Backup ഇൻസ്റ്റാൾ ചെയ്യാൻ.

$ 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

ഫെഡോറ 32+-ൽ Rdiff-Backup ഇൻസ്റ്റാൾ ചെയ്യാൻ.

$ sudo dnf install rdiff-backup

Linux-ൽ rdiff-backup എങ്ങനെ ഉപയോഗിക്കാം

ഞാൻ മുമ്പ് സൂചിപ്പിച്ചതുപോലെ, നിങ്ങളുടെ നെറ്റ്uവർക്കിലെ റിമോട്ട് മെഷീനുകളിലേക്ക് കണക്റ്റുചെയ്യാൻ rdiff-backup SSH ഉപയോഗിക്കുന്നു, കൂടാതെ SSH-ലെ സ്ഥിരസ്ഥിതി പ്രാമാണീകരണം ഉപയോക്തൃനാമം/പാസ്uവേഡ് രീതിയാണ്, ഇതിന് സാധാരണയായി മനുഷ്യ ഇടപെടൽ ആവശ്യമാണ്.

എന്നിരുന്നാലും, സ്uക്രിപ്uറ്റുകളും അതിനപ്പുറവും ഉള്ള ഓട്ടോമാറ്റിക് ബാക്കപ്പുകൾ പോലുള്ള ടാസ്uക്കുകൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന്, നിങ്ങൾ എളുപ്പമുള്ള ഫയൽ സമന്വയമോ കൈമാറ്റമോ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്.

നിങ്ങൾ SSH പാസ്uവേഡ്uലെസ് ലോഗിൻ സജ്ജീകരിച്ചുകഴിഞ്ഞാൽ, ഇനിപ്പറയുന്ന ഉദാഹരണങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് സ്uക്രിപ്റ്റ് ഉപയോഗിക്കാൻ തുടങ്ങാം.

ചുവടെയുള്ള ഉദാഹരണം മറ്റൊരു പാർട്ടീഷനിൽ ഒരു ബാക്കപ്പ് ഡയറക്uടറിയിലെ /etc ഡയറക്uടറി ബാക്കപ്പ് ചെയ്യും:

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

ഒരു പ്രത്യേക ഡയറക്uടറിയും അതിന്റെ ഉപഡയറക്uടറികളും ഒഴിവാക്കാൻ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ --ഒഴിവാക്കുക ഓപ്ഷൻ ഉപയോഗിക്കാം:

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

--include-special-files എന്ന ഓപ്uഷനുള്ള എല്ലാ ഉപകരണ ഫയലുകളും fifo ഫയലുകളും സോക്കറ്റ് ഫയലുകളും പ്രതീകാത്മക ലിങ്കുകളും ഞങ്ങൾക്ക് ചുവടെ ഉൾപ്പെടുത്താം:

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

ഫയൽ തിരഞ്ഞെടുക്കലിനായി നമുക്ക് സജ്ജമാക്കാൻ കഴിയുന്ന മറ്റ് രണ്ട് പ്രധാന ഫ്ലാഗുകൾ ഉണ്ട്; --max-file-size ബൈറ്റുകളിൽ തന്നിരിക്കുന്ന വലുപ്പത്തേക്കാൾ വലുതായ ഫയലുകളെ ഒഴിവാക്കുന്ന വലുപ്പവും --min-file-size വലിപ്പത്തിലും ചെറുതായ ഫയലുകൾ ഒഴിവാക്കുന്നു നൽകിയിരിക്കുന്ന വലുപ്പം ബൈറ്റുകളിൽ:

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

ഈ വിഭാഗത്തിന്റെ ആവശ്യത്തിനായി, ഞങ്ങൾ ഉപയോഗിക്കും:

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

ഞങ്ങൾ മുമ്പ് പറഞ്ഞതുപോലെ, രണ്ട് മെഷീനുകളിലും നിങ്ങൾ rdiff-ബാക്കപ്പിന്റെ അതേ പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്യണം, ഇപ്പോൾ രണ്ട് മെഷീനുകളിലെയും പതിപ്പ് ഇനിപ്പറയുന്ന രീതിയിൽ പരിശോധിക്കാൻ ശ്രമിക്കുക:

$ rdiff-backup -V

ബാക്കപ്പ് സെർവറിൽ, ബാക്കപ്പ് ഫയലുകൾ സംഭരിക്കുന്ന ഒരു ഡയറക്ടറി സൃഷ്ടിക്കുക:

# mkdir -p /backups

ഇപ്പോൾ ബാക്കപ്പ് സെർവറിൽ നിന്ന്, / ലെ റിമോട്ട് ലിനക്സ് സെർവർ 192.168.56.102-ൽ നിന്ന് /var/log/, /root എന്നിവയുടെ ഒരു ബാക്കപ്പ് ഉണ്ടാക്കാൻ ഇനിപ്പറയുന്ന കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക ബാക്കപ്പുകൾ:

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

താഴെയുള്ള സ്ക്രീൻഷോട്ട് റിമോട്ട് സെർവർ 192.168.56.102-ലെ റൂട്ട് ഫയലും 192.168.56.10 ബാക്ക് സെർവറിലെ ബാക്കപ്പ് ചെയ്ത ഫയലുകളും കാണിക്കുന്നു:

സ്uക്രീൻഷോട്ടിൽ കാണുന്നതുപോലെ ബാക്കപ്പ് ഡയറക്uടറിയിൽ സൃഷ്uടിച്ച rdiff-backup-data ഡയറക്uടറി ശ്രദ്ധിക്കുക, അതിൽ ബാക്കപ്പ് പ്രക്രിയയെയും ഇൻക്രിമെന്റൽ ഫയലുകളെയും സംബന്ധിച്ച സുപ്രധാന ഡാറ്റ അടങ്ങിയിരിക്കുന്നു.

ഇപ്പോൾ, 192.168.56.102 സെർവറിൽ, താഴെ കാണിച്ചിരിക്കുന്നതുപോലെ റൂട്ട് ഡയറക്ടറിയിലേക്ക് അധിക ഫയലുകൾ ചേർത്തു:

മാറ്റിയ ഡാറ്റ ലഭിക്കാൻ നമുക്ക് ഒരിക്കൽ കൂടി ബാക്കപ്പ് കമാൻഡ് പ്രവർത്തിപ്പിക്കാം, നമുക്ക് -v[0-9] (ഇവിടെ നമ്പർ വെർബോസിറ്റി ലെവൽ വ്യക്തമാക്കുന്നു, ഡിഫോൾട്ട് 3 ആണ്, അത് നിശബ്ദമാണ്) ഓപ്ഷൻ ഉപയോഗിക്കാം വെർബോസിറ്റി സവിശേഷത സജ്ജമാക്കുക:

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

കൂടാതെ /backups/192.168.56.102_rootfiles.backup ഡയറക്uടറിയിൽ അടങ്ങിയിരിക്കുന്ന ഭാഗികമായ ഇൻക്രിമെന്റൽ ബാക്കപ്പുകളുടെ എണ്ണവും തീയതിയും ലിസ്റ്റുചെയ്യുന്നതിന്, നമുക്ക് പ്രവർത്തിപ്പിക്കാം:

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

വിജയകരമായ ബാക്കപ്പിന് ശേഷം --print-statistics ഉപയോഗിച്ച് നമുക്ക് സംഗ്രഹ സ്ഥിതിവിവരക്കണക്കുകൾ പ്രിന്റ് ചെയ്യാൻ കഴിയും. എന്നിരുന്നാലും, ഞങ്ങൾ ഈ ഓപ്uഷൻ സജ്ജീകരിച്ചില്ലെങ്കിൽ, സെഷൻ സ്റ്റാറ്റിസ്റ്റിക്uസ് ഫയലിൽ നിന്ന് വിവരങ്ങൾ തുടർന്നും ലഭ്യമാകും. മാൻ പേജിന്റെ സ്റ്റാറ്റിസ്റ്റിക്സ് വിഭാഗത്തിൽ ഈ ഓപ്ഷനെ കുറിച്ച് കൂടുതൽ വായിക്കുക.

ഒരു റിമോട്ട് കമ്പ്യൂട്ടറുമായി ബന്ധിപ്പിക്കുന്നതിനുള്ള ഒരു ബദൽ രീതി വ്യക്തമാക്കാൻ -remote-schema ഫ്ലാഗ് നമ്മെ പ്രാപ്തരാക്കുന്നു.

ഇനി, 192.168.56.10 ബാക്കപ്പ് സെർവറിൽ ഒരു backup.sh സ്uക്രിപ്റ്റ് സൃഷ്uടിച്ചുകൊണ്ട് നമുക്ക് ആരംഭിക്കാം:

# cd ~/bin
# vi backup.sh

സ്ക്രിപ്റ്റ് ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക.

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

ഫയൽ സംരക്ഷിച്ച് പുറത്തുകടക്കുക, തുടർന്ന് ബാക്കപ്പ് സെർവറിലെ ക്രോണ്ടാബിലേക്ക് സ്ക്രിപ്റ്റ് ചേർക്കുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക 192.168.56.10:

# crontab -e

ദിവസവും അർദ്ധരാത്രിയിൽ നിങ്ങളുടെ ബാക്കപ്പ് സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കാൻ ഈ ലൈൻ ചേർക്കുക:

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

ക്രോണ്ടാബ് സംരക്ഷിച്ച് അത് അടയ്ക്കുക, ഇപ്പോൾ ഞങ്ങൾ ബാക്കപ്പ് പ്രക്രിയ വിജയകരമായി യാന്ത്രികമാക്കി. ഇത് പ്രതീക്ഷിച്ചതുപോലെ പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കുക.

കൂടുതൽ വിവരങ്ങൾക്കും സമഗ്രമായ ഉപയോഗ ഓപ്ഷനുകൾക്കും ഉദാഹരണങ്ങൾക്കും rdiff-backup man പേജിലൂടെ വായിക്കുക:

# man rdiff-backup

rdiff-backup ഹോംപേജ്: http://www.nongnu.org/rdiff-backup/

തൽക്കാലം അത്രമാത്രം! ഈ ട്യൂട്ടോറിയലിൽ, ലിനക്സിലെ ലോക്കൽ/റിമോട്ട് ഇൻക്രിമെന്റൽ ബാക്കപ്പിനായി ഉപയോഗിക്കാൻ എളുപ്പമുള്ള പൈത്തൺ സ്ക്രിപ്റ്റായ rdiff-backup എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും അടിസ്ഥാനപരമായി ഉപയോഗിക്കാമെന്നും ഞങ്ങൾ കാണിച്ചുതന്നു. ചുവടെയുള്ള ഫീഡ്uബാക്ക് വിഭാഗം വഴി നിങ്ങളുടെ ചിന്തകൾ ഞങ്ങളുമായി പങ്കിടുക.