rdiff-backup - ເຄື່ອງມື ສຳ ຮອງຂໍ້ມູນເພີ່ມໄລຍະໄກ ສຳ ລັບ Linux


rdiff-backup ແມ່ນຕົວອັກສອນ Python ທີ່ມີປະສິດທິພາບແລະງ່າຍຕໍ່ການໃຊ້ ສຳ ລັບການ ສຳ ຮອງຂໍ້ມູນທີ່ເພີ່ມຂື້ນໃນທ້ອງຖິ່ນ/ຫ່າງໄກສອກຫຼີກ, ເຊິ່ງໃຊ້ໄດ້ກັບລະບົບປະຕິບັດການໃດໆຂອງ POSIX ເຊັ່ນ Linux, Mac OS X ຫຼື Cygwin. ມັນ ນຳ ເອົາຄຸນລັກສະນະທີ່ໂດດເດັ່ນຂອງກະຈົກແລະການ ສຳ ຮອງທີ່ເພີ່ມຂື້ນ.

ທີ່ ສຳ ຄັນ, ມັນຮັກສາເອກະສານຍ່ອຍ, ໄຟລ໌ dev, ລິ້ງທີ່ແຂງແລະຄຸນລັກສະນະເອກະສານ ສຳ ຄັນເຊັ່ນ: ສິດ, ການເປັນເຈົ້າຂອງ uid/gid, ເວລາດັດແປງ, ຄຸນລັກສະນະທີ່ຂະຫຍາຍ, ເອກະສານແລະເອກະສານຊ້ອນທ້າຍ. ມັນສາມາດເຮັດວຽກໄດ້ໃນຮູບແບບທີ່ມີປະສິດທິພາບແບນວິດຜ່ານທໍ່, ໃນລັກສະນະຄ້າຍຄືກັບເຄື່ອງມື ສຳ ຮອງ ສຳ ຮອງ rsync.

rdiff-backup ສຳ ຮອງຂໍ້ມູນ ໜຶ່ງ ເສັ້ນທາງສູ່ເຄືອຂ່າຍອື່ນໂດຍໃຊ້ SSH, ເຊິ່ງ ໝາຍ ຄວາມວ່າການໂອນຂໍ້ມູນຖືກເຂົ້າລະຫັດຈຶ່ງປອດໄພ. ໄດເລກະທໍລີເປົ້າ ໝາຍ (ຢູ່ໃນລະບົບຫ່າງໄກສອກຫຼີກ) ສິ້ນສຸດການ ສຳ ເນົາຂອງແຫລ່ງທີ່ມາ, ຢ່າງໃດກໍ່ຕາມຈຸດແຕກຕ່າງພິເສດແມ່ນຖືກເກັບໄວ້ໃນແຟ້ມເອກະສານຍ່ອຍພິເສດໃນໄດເລກະທໍລີເປົ້າ ໝາຍ, ເຮັດໃຫ້ມັນສາມາດກູ້ຄືນໄຟລ໌ທີ່ສູນເສຍໄປໃນບາງຄັ້ງທີ່ຜ່ານມາ.

ການ ນຳ ໃຊ້ ສຳ ຮອງ ສຳ ຮອງໃນ Linux, ທ່ານ ຈຳ ເປັນຕ້ອງມີຊຸດຕໍ່ໄປນີ້ຕິດຕັ້ງຢູ່ໃນລະບົບຂອງທ່ານ:

  • Python v2.2 ຫຼືຫຼັງຈາກນັ້ນ
  • librsync v0.9.7 ຫຼືຫຼັງຈາກນັ້ນ
  • pylibacl ແລະ pyxattr Python ໂມດູນແມ່ນເປັນທາງເລືອກແຕ່ມີຄວາມ ຈຳ ເປັນ ສຳ ລັບລາຍຊື່ຄວບຄຸມການເຂົ້າເຖິງ POSIX (ACL) ແລະການສະ ໜັບ ສະ ໜູນ ຄຸນລັກສະນະຕໍ່ເນື່ອງ.
  • rdiff-backup-statistics ຮຽກຮ້ອງໃຫ້ມີ Python v2.4 ຫຼືຫຼັງຈາກນັ້ນ.

ວິທີການຕິດຕັ້ງ rdiff-backup ໃນ Linux

ສິ່ງ ສຳ ຄັນ: ຖ້າທ່ານ ກຳ ລັງເຮັດວຽກຢູ່ໃນເຄືອຂ່າຍ, ທ່ານຕ້ອງຕິດຕັ້ງລະບົບ ສຳ ຮອງທັງສອງລຸ້ນ, ດີກວ່າທັງສອງການຕິດຕັ້ງ rdiff-backup ຈະຕ້ອງເປັນລຸ້ນດຽວກັນ.

ສະຄິບແມ່ນມີຢູ່ແລ້ວໃນຫໍສະ ໝຸດ ຢ່າງເປັນທາງການຂອງການແຈກແຈງ Linux ທີ່ມີຫລັກ, ພຽງແຕ່ ດຳ ເນີນ ຄຳ ສັ່ງຂ້າງລຸ່ມນີ້ເພື່ອຕິດຕັ້ງ rdiff-backup ເຊັ່ນດຽວກັບຄວາມເພິ່ງພາອາໄສຂອງມັນ:

ການຕິດຕັ້ງ Rdiff-Backup ໃນ Ubuntu Focal ຫຼື Debian Bullseye ຫຼື ໃໝ່ ກວ່າ (ມີ 2.0).

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

ການຕິດຕັ້ງ Rdiff-Backup ໃນ backports Ubuntu ສຳ ລັບລຸ້ນເກົ່າ (ຕ້ອງການ ໜັງ ສື ສຳ ຮອງ 2.0).

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

ການຕິດຕັ້ງ Rdiff-Backup ເທິງ CentOS ແລະ RHEL 8 (ຈາກ COPR).

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

ການຕິດຕັ້ງ Rdiff-Backup ເທິງ CentOS ແລະ RHEL 7 (ຈາກ 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

ການຕິດຕັ້ງ Rdiff-Backup ໃນ Fedora 32+.

$ sudo dnf install rdiff-backup

ວິທີການໃຊ້ rdiff-backup ໃນ Linux

ດັ່ງທີ່ຂ້າພະເຈົ້າໄດ້ກ່າວມາກ່ອນ, rdiff-backup ໃຊ້ SSH ເພື່ອເຊື່ອມຕໍ່ກັບເຄື່ອງຫ່າງໄກສອກຫຼີກໃນເຄືອຂ່າຍຂອງທ່ານ, ແລະການກວດສອບຄວາມຖືກຕ້ອງໃນຕອນຕົ້ນໃນ SSH ແມ່ນວິທີການຊື່ຜູ້ໃຊ້/ລະຫັດຜ່ານ, ເຊິ່ງປົກກະຕິຮຽກຮ້ອງໃຫ້ມີການພົວພັນຂອງມະນຸດ.

ເຖິງຢ່າງໃດກໍ່ຕາມ, ເພື່ອອັດຕະໂນມັດວຽກງານຕ່າງໆເຊັ່ນ: ການ ສຳ ຮອງຂໍ້ມູນແບບອັດຕະໂນມັດດ້ວຍສະຄິບແລະຕໍ່ໄປ, ທ່ານຈະຕ້ອງ ກຳ ຫນົດຄ່າການໂອນເອກະສານງ່າຍໆຫຼືການໂອນຍ້າຍ.

ເມື່ອທ່ານໄດ້ຕິດຕັ້ງ SSH ເຂົ້າລະຫັດຜ່ານແບບບໍ່ມີປະສິດຕິພາບ, ທ່ານສາມາດເລີ່ມຕົ້ນໃຊ້ສະຄິບດ້ວຍຕົວຢ່າງຕໍ່ໄປນີ້.

ຕົວຢ່າງຂ້າງລຸ່ມນີ້ຈະ ສຳ ຮອງລະບົບ /etc ໃນລະບົບ ສຳ ຮອງ ສຳ ຮອງໃນອີກສ່ວນ ໜຶ່ງ:

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

ເພື່ອຍົກເວັ້ນໄດເລກະທໍລີໃດ ໜຶ່ງ ເຊັ່ນດຽວກັນກັບໂຟເດີຍ່ອຍ, ທ່ານສາມາດໃຊ້ຕົວເລືອກ - ຍົກເວັ້ນ ດັ່ງຕໍ່ໄປນີ້:

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

ພວກເຮົາສາມາດປະກອບມີແຟ້ມອຸປະກອນທັງ ໝົດ, ແຟ້ມເອກະສານສິບ, ເອກະສານຊັອກເກັດ, ແລະການເຊື່ອມຕໍ່ສັນຍາລັກກັບຕົວເລືອກ - ພິເສດ - ໄຟລ໌ພິເສດ ດັ່ງລຸ່ມນີ້:

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

ມັນມີອີກສອງທຸງທີ່ ສຳ ຄັນທີ່ພວກເຮົາສາມາດຕັ້ງຄ່າ ສຳ ລັບການເລືອກເອກະສານ; - ແຟ້ມແຟ້ມ - ຂະ ໜາດ ແຟ້ມ ທີ່ບໍ່ລວມເອົາເອກະສານທີ່ມີຂະ ໜາດ ໃຫຍ່ກວ່າຂະ ໜາດ ທີ່ໄດ້ຮັບເປັນໄບແລະ - 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-backup ແບບດຽວກັນຢູ່ໃນທັງສອງເຄື່ອງ, ດຽວນີ້ລອງກວດເບິ່ງລຸ້ນຢູ່ໃນເຄື່ອງທັງສອງດັ່ງຕໍ່ໄປນີ້:

$ rdiff-backup -V

ໃນເຄື່ອງແມ່ຂ່າຍ ສຳ ຮອງຂໍ້ມູນ, ສ້າງໄດເລກະທໍລີເຊິ່ງຈະເກັບແຟ້ມເອກະສານ ສຳ ຮອງໄວ້ດັ່ງນີ້:

# mkdir -p /backups

ຕອນນີ້ຈາກເຄື່ອງແມ່ຂ່າຍ ສຳ ຮອງ, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອ ທຳ ການ ສຳ ຮອງລາຍຊື່ໄດເລກະທໍລີ /var/log/ ແລະ /ຮາກ ຈາກ Linux server ຫ່າງໄກສອກຫຼີກ 192.168.56.102 ໃນ /ສຳ ຮອງຂໍ້ມູນ :

# 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:

ຈົດບັນທຶກໄດເລກະທໍລີ rdiff-backup-data ທີ່ຖືກສ້າງຂື້ນໃນໄດເລກະທໍລີ ສຳ ຮອງ <ລະຫັດຜ່ານ ທີ່ເຫັນໃນ ໜ້າ ຈໍ, ມັນມີຂໍ້ມູນທີ່ ສຳ ຄັນກ່ຽວກັບຂະບວນການ ສຳ ຮອງແລະເອກະສານທີ່ເພີ່ມຂື້ນ.

ດຽວນີ້, ໃນເຄື່ອງແມ່ຂ່າຍ 192.168.56.102, ມີເອກະສານເພີ່ມເຕີມໄດ້ຖືກເພີ່ມເຂົ້າໃນລະບົບຮາກດັ່ງທີ່ສະແດງຢູ່ດ້ານລຸ່ມ:

ໃຫ້ໃຊ້ ຄຳ ສັ່ງ ສຳ ຮອງຂໍ້ມູນອີກຄັ້ງ ໜຶ່ງ ເພື່ອໃຫ້ໄດ້ຂໍ້ມູນທີ່ຖືກປ່ຽນແປງ, ພວກເຮົາສາມາດໃຊ້ -v [0-9] (ບ່ອນທີ່ຕົວເລກລະບຸລະດັບ verbosity, ຄ່າເລີ່ມຕົ້ນແມ່ນ 3 ເຊິ່ງງຽບ) ທາງເລືອກທີ່ຈະ ກຳ ນົດຄຸນລັກສະນະພິເສດ:

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

ແລະເພື່ອບອກ ຈຳ ນວນແລະວັນທີຂອງການ ສຳ ຮອງທີ່ເພີ່ມຂື້ນບາງສ່ວນທີ່ມີຢູ່ໃນ /backups/192.168.56.102_rootfiles.backup directory, ພວກເຮົາສາມາດເອີ້ນໃຊ້:

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

ພວກເຮົາສາມາດພິມສະຖິຕິສະຫຼຸບໄດ້ຫຼັງຈາກ ສຳ ຮອງ ສຳ ເລັດດ້ວຍລະຫັດສະຖິຕິ - - ສະຖິຕິ . ເຖິງຢ່າງໃດກໍ່ຕາມ, ຖ້າພວກເຮົາບໍ່ ກຳ ນົດຕົວເລືອກນີ້, ຂໍ້ມູນຈະຍັງມີຢູ່ຈາກເອກະສານສະຖິຕິຂອງກອງປະຊຸມ. ອ່ານເພີ່ມເຕີມກ່ຽວກັບຕົວເລືອກນີ້ໃນພາກສະຖານະພາບຂອງ ໜ້າ ຜູ້ຊາຍ.

ແລະທຸງ –remote-schema ຊ່ວຍໃຫ້ພວກເຮົາສາມາດລະບຸວິທີການທາງເລືອກໃນການເຊື່ອມຕໍ່ກັບຄອມພິວເຕີ້ຫ່າງໄກສອກຫຼີກ.

ດຽວນີ້, ເລີ່ມຕົ້ນໂດຍການສ້າງສະຄິບ backup.sh ໃນເຄື່ອງ ສຳ ຮອງຂໍ້ມູນ 192.168.56.10 ດັ່ງຕໍ່ໄປນີ້:

# 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

ບັນທຶກເອກະສານແລະອອກ, ຈາກນັ້ນ ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້ເພື່ອເພີ່ມຄິບໃນ crontab ເທິງ server ສຳ ຮອງ 192.168.56.10:

# crontab -e

ຕື່ມເສັ້ນນີ້ເພື່ອ ດຳ ເນີນການຂຽນ ສຳ ຮອງຂອງທ່ານທຸກໆວັນໃນເວລາທ່ຽງຄືນ:

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

ບັນທຶກກະດານປິດແລະປິດມັນ, ຕອນນີ້ພວກເຮົາໄດ້ປະສົບຜົນ ສຳ ເລັດໃນການ ສຳ ຮອງຂໍ້ມູນອັດຕະໂນມັດ. ຮັບປະກັນວ່າມັນ ກຳ ລັງເຮັດວຽກໄດ້ຕາມຄາດ ໝາຍ.

ອ່ານຜ່ານ ໜ້າ ຜູ້ຊາຍ ສຳ ຮອງ ສຳ ລັບຂໍ້ມູນເພີ່ມເຕີມ, ຕົວເລືອກການ ນຳ ໃຊ້ທີ່ສົມບູນແລະຕົວຢ່າງ:

# man rdiff-backup

ເວບໄຊທ໌ rdiff-backup: http://www.nongnu.org/rdiff-backup/

ນັ້ນແມ່ນ ສຳ ລັບດຽວນີ້! ໃນບົດແນະ ນຳ ນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕິດຕັ້ງແລະໃຊ້ພື້ນຖານການ ນຳ ໃຊ້ rdiff-backup, ເປັນ script Python ທີ່ໃຊ້ງ່າຍ ສຳ ລັບການ ສຳ ຮອງຂໍ້ມູນເພີ່ມຂື້ນໃນທ້ອງຖິ່ນ/ໄລຍະໄກໃນ Linux. ຢ່າແບ່ງປັນຄວາມຄິດຂອງພວກເຮົາກັບພວກເຮົາຜ່ານພາກຄໍາເຫັນຂ້າງລຸ່ມນີ້.