Vyhledávání na webu

rdiff-backup - Nástroj vzdáleného přírůstkového zálohování pro Linux


rdiff-backup je výkonný a snadno použitelný skript Python pro místní/vzdálené přírůstkové zálohování, který funguje na jakémkoli operačním systému POSIX, jako je Linux, Mac OS X nebo Cygwin. Spojuje pozoruhodné vlastnosti zrcadlení a přírůstkové zálohy.

Je důležité, že zachovává podadresáře, dev soubory, pevné odkazy a důležité atributy souborů, jako jsou oprávnění, vlastnictví uid/gid, časy úprav, rozšířené atributy, acls a rozvětvení zdrojů. Může pracovat v režimu efektivního přenosu šířky pásma přes potrubí, podobným způsobem jako populární nástroj pro zálohování rsync.

rdiff-backup zálohuje jeden adresář do jiného přes síť pomocí SSH, což znamená, že přenos dat je šifrovaný a tedy bezpečný. Cílový adresář (na vzdáleném systému) končí přesnou kopií zdrojového adresáře, nicméně další zpětné rozdíly jsou uloženy ve speciálním podadresáři v cílovém adresáři, což umožňuje obnovit soubory ztracené před časem.

Závislosti

Chcete-li použít rdiff-backup v Linuxu, budete potřebovat na vašem systému nainstalované následující balíčky:

  • Python v2.2 nebo novější
  • librsync v0.9.7 nebo novější
  • pylibacl a pyxattr Python moduly jsou volitelné, ale nezbytné pro POSIX přístupový seznam (ACL) a podporu rozšířených atributů.
  • rdiff-backup-statistics vyžaduje Python v2.4 nebo novější.

Jak nainstalovat rdiff-backup v Linuxu

Důležité: Pokud pracujete přes síť, budete muset nainstalovat rdiff-backup oba systémy, pokud možno, obě instalace rdiff-backup budou muset být přesné stejná verze.

Skript je již přítomen v oficiálních repozitářích mainstreamových distribucí Linuxu, jednoduše spusťte níže uvedený příkaz a nainstalujte rdiff-backup a také jeho závislosti:

Nainstalujte zálohu rdiff na Ubuntu

Chcete-li nainstalovat Rdiff-Backup na Ubuntu Focal nebo Debian Bullseye nebo novější (má 2.0).


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

Chcete-li nainstalovat Rdiff-Backup na backporty Ubuntu pro starší verze (potřebuje backported 2.0).


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

Na CentOS/RHEL 8

Chcete-li nainstalovat Rdiff-Backup na CentOS a RHEL 8 (od COPR).


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

Na CentOS/RHEL 7

Chcete-li nainstalovat Rdiff-Backup na CentOS a RHEL 7 (od COPR).


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

Na CentOS/RHEL 6


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 "$@"' | sudo tee /usr/bin/rdiff-backup
sudo chmod +x /usr/bin/rdiff-backup

Na Fedoře

Chcete-li nainstalovat Rdiff-Backup na Fedoru 32+.


sudo dnf install rdiff-backup

Jak používat rdiff-backup v Linuxu

Jak jsem již zmínil, rdiff-backup používá SSH pro připojení ke vzdáleným počítačům ve vaší síti a výchozí autentizace v SSH je metoda uživatelského jména/hesla, která normálně vyžaduje lidskou interakci.

Chcete-li však automatizovat úlohy, jako je automatické zálohování pomocí skriptů a mimo ně, budete muset nakonfigurovat přihlašování bez hesla SSH pomocí klíčů SSH, protože klíče SSH zvyšují důvěru mezi dvěma servery Linux pro snadnou synchronizaci nebo přenos souborů.

Jakmile nastavíte přihlášení SSH bez hesla, můžete začít používat skript s následujícími příklady.

Zálohujte soubory na jiný oddíl

Níže uvedený příklad zálohuje adresář /etc do adresáře Záloha na jiném oddílu:

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

Chcete-li vyloučit konkrétní adresář a také jeho podadresáře, můžete použít volbu --exclude takto:

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

Můžeme zahrnout všechny soubory zařízení, soubory fifo, soubory socketů a symbolické odkazy pomocí možnosti --include-special-files, jak je uvedeno níže:

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

Existují dva další důležité příznaky, které můžeme nastavit pro výběr souboru; --max-file-size velikost, která vylučuje soubory, které jsou větší než daná velikost v bajtech a --min-file-size velikost, která vylučuje soubory, které jsou menší než daná velikost v bajtech:

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

Zálohujte vzdálené soubory na místním serveru Linux

Pro účely této části použijeme:

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

Jak jsme uvedli dříve, musíte nainstalovat stejnou verzi rdiff-backup na oba počítače, nyní zkuste zkontrolovat verzi na obou počítačích následovně:

rdiff-backup -V

Na záložním serveru vytvořte adresář, do kterého se budou ukládat záložní soubory takto:

mkdir -p /backups

Nyní ze záložního serveru spusťte následující příkazy a vytvořte zálohu adresářů /var/log/ a /root ze vzdáleného serveru Linux 192.168.56.102 v /backups:

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

Snímek obrazovky níže ukazuje kořenový soubor na vzdáleném serveru 192.168.56.102 a zálohované soubory na zadním serveru 192.168.56.10:

Poznamenejte si adresář rdiff-backup-data vytvořený v adresáři backup, jak je vidět na snímku obrazovky, obsahuje důležitá data týkající se procesu zálohování a přírůstkové soubory.

Nyní na serveru 192.168.56.102 byly do kořenového adresáře přidány další soubory, jak je znázorněno níže:

Spusťte příkaz backup ještě jednou, abychom získali změněná data, můžeme použít volbu -v[0-9] (kde číslo určuje úroveň výřečnosti, výchozí je 3, která je tichá). nastavit funkci výřečnosti:

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

A abychom vypsali počet a datum dílčích přírůstkových záloh obsažených v adresáři /backups/192.168.56.102_rootfiles.backup, můžeme spustit:

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

Automatizace zálohování rdiff-back pomocí Cron

Po úspěšném zálohování můžeme vytisknout souhrnné statistiky pomocí --print-statistics. Pokud však tuto možnost nenastavíme, informace budou stále dostupné ze souboru statistiky návštěv. Přečtěte si více o této možnosti v části STATISTIKA manuálové stránky.

A příznak –remote-schema nám umožňuje určit alternativní způsob připojení ke vzdálenému počítači.

Nyní začněme vytvořením skriptu backup.sh na záložním serveru 192.168.56.10 následovně:

cd ~/bin
vi backup.sh

Přidejte následující řádky do souboru skriptu.

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

Uložte soubor a ukončete, poté spusťte následující příkaz pro přidání skriptu do crontab na záložním serveru 192.168.56.10:

crontab -e

Přidejte tento řádek, aby se zálohovací skript spouštěl denně o půlnoci:

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

Uložte crontab a zavřete jej, nyní jsme úspěšně zautomatizovali proces zálohování. Ujistěte se, že funguje podle očekávání.

Přečtěte si manuálovou stránku rdiff-backup pro další informace, vyčerpávající možnosti použití a příklady:

man rdiff-backup

Domovská stránka rdiff-backup: http://www.nongnu.org/rdiff-backup/

To je prozatím vše! V tomto tutoriálu jsme vám ukázali, jak nainstalovat a v podstatě používat rdiff-backup, snadno použitelný skript Python pro místní/vzdálené přírůstkové zálohování v Linuxu. Podělte se s námi o své myšlenky prostřednictvím sekce zpětné vazby níže.