rdiff-backup - Linux için Uzaktan Artımlı Yedekleme Aracı


rdiff-backup, Linux, Mac OS X veya Cygwin gibi herhangi bir POSIX işletim sisteminde çalışan, yerel/uzaktan artımlı yedeklemeye yönelik güçlü ve kullanımı kolay bir Python komut dosyasıdır. Bir aynanın ve artımlı yedeklemenin dikkat çekici özelliklerini bir araya getirir.

Alt dizinleri, dev dosyalarını, sabit bağlantıları ve izinler, uid/gid sahipliği, değişiklik süreleri, genişletilmiş öznitelikler, acl'ler ve kaynak çatalları gibi kritik dosya niteliklerini önemli ölçüde korur. Popüler rsync yedekleme aracına benzer şekilde, bir kanal üzerinde bant genişliği açısından verimli bir modda çalışabilir.

rdiff-backup, SSH kullanarak ağ üzerinden tek bir dizini diğerine yedekler; bu, veri aktarımının şifrelenerek güvenli hale getirildiğini gösterir. Hedef dizin (uzak sistemdeki) kaynak dizinin tam bir kopyasını oluşturur, ancak ekstra ters farklar hedef dizindeki özel bir alt dizinde saklanır ve bir süre önce kaybolan dosyaların kurtarılmasını mümkün kılar.

Bağımlılıklar

Linux'ta rdiff-backup'ı kullanmak için sisteminizde aşağıdaki paketlerin kurulu olması gerekir:

  • Python v2.2 veya üzeri
  • librsync v0.9.7 veya üzeri
  • pylibacl ve pyxattr Python modülleri isteğe bağlıdır ancak sırasıyla POSIX erişim kontrol listesi (ACL) ve genişletilmiş öznitelik desteği için gereklidir.
  • rdiff-backup-statistics Python v2.4 veya üstünü gerektirir.

Linux'ta rdiff-backup nasıl kurulur

Önemli: Eğer bir ağ üzerinden çalışıyorsanız, her iki sisteme de rdiff-backup yüklemeniz gerekir; tercihen her iki rdiff-backup kurulumunun da aynı olması gerekir aynı versiyon.

Komut dosyası, ana akım Linux dağıtımlarının resmi depolarında zaten mevcuttur; rdiff-backup'ı ve bağımlılıklarını yüklemek için aşağıdaki komutu çalıştırmanız yeterlidir:

Ubuntu'da rdiff-backup'ı kurun

Rdiff-BackupUbuntu Focal veya Debian Bullseye veya daha yenisine (2.0'a sahip) yüklemek için.


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

Eski sürümler için Ubuntu destek bağlantı noktalarına Rdiff-Backup'ı yüklemek için (desteklenen bir 2.0 gerekir).


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

CentOS/RHEL 8'de

Rdiff-Backup'ı CentOS ve RHEL 8'e (COPR'dan) yüklemek için.


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

CentOS/RHEL 7'de

Rdiff-Backup'ı CentOS ve RHEL 7'ye (COPR'dan) yüklemek için.


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

CentOS/RHEL 6'da


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

Fedora'da

Rdiff-Backup'ı Fedora 32+ sürümüne yüklemek için.


sudo dnf install rdiff-backup

Linux'ta rdiff-backup Nasıl Kullanılır

Daha önce de belirttiğim gibi rdiff-backup, ağınızdaki uzak makinelere bağlanmak için SSH'yi kullanır ve SSH'deki varsayılan kimlik doğrulama, normalde insan etkileşimi gerektiren kullanıcı adı/şifre yöntemidir.

Bununla birlikte, komut dosyalarıyla otomatik yedeklemeler ve ötesi gibi görevleri otomatikleştirmek için, SSH anahtarlarını kullanarak SSH Parolasız Oturum Açmayı yapılandırmanız gerekecektir; çünkü SSH anahtarları, kolay dosya senkronizasyonu veya aktarımı için iki Linux sunucusu arasındaki güveni artırır.

SSH Şifresiz Giriş kurulumunu yaptıktan sonra aşağıdaki örneklerle scripti kullanmaya başlayabilirsiniz.

Dosyaları Farklı Bölüme Yedekleme

Aşağıdaki örnek, /etc dizinini başka bir bölümdeki Yedekleme dizinine yedekleyecektir:

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

Belirli bir dizini ve onun alt dizinlerini hariç tutmak için --exclude seçeneğini aşağıdaki gibi kullanabilirsiniz:

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

Aşağıdaki gibi tüm cihaz dosyalarını, fifo dosyalarını, soket dosyalarını ve sembolik bağlantıları --include-special-files seçeneğiyle dahil edebiliriz:

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

Dosya seçimi için ayarlayabileceğimiz iki önemli bayrak daha var; Bayt cinsinden belirtilen boyuttan daha büyük olan dosyaları hariç tutan --max-file-size boyutu ve bayt cinsinden belirtilen boyuttan daha küçük olan dosyaları hariç tutan --min-file-size boyutu bayt cinsinden verilen boyut:

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

Uzak Dosyaları Yerel Linux Sunucusunda Yedekleme

Bu bölümün amacı doğrultusunda şunları kullanacağız:

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

Daha önce de belirttiğimiz gibi, her iki makineye de aynı rdiff-backup sürümünü yüklemelisiniz, şimdi her iki makinedeki sürümü aşağıdaki gibi kontrol etmeyi deneyin:

rdiff-backup -V

Yedekleme sunucusunda, yedekleme dosyalarını şu şekilde saklayacak bir dizin oluşturun:

mkdir -p /backups

Şimdi yedekleme sunucusundan, 192.168.56.102 uzak Linux sunucusundaki /var/log/ ve /root dizinlerinin yedeğini almak için aşağıdaki komutları çalıştırın. /backups dosyasında güçlü>:

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

Aşağıdaki ekran görüntüsü uzak sunucudaki 192.168.56.102 kök dosyasını ve arka sunucudaki 192.168.56.10 yedeklenen dosyaları göstermektedir:

Ekran görüntüsünde görüldüğü gibi backup dizininde oluşturulan rdiff-backup-data dizinine dikkat edin; yedekleme işlemi ve artımlı dosyalar ile ilgili hayati verileri içerir.

Artık 192.168.56.102 sunucusunda, aşağıda gösterildiği gibi kök dizine ek dosyalar eklenmiştir:

Değiştirilen verileri almak için yedekleme komutunu bir kez daha çalıştıralım, -v[0-9] (sayı ayrıntı düzeyini belirtir, varsayılan 3'tür ve sessizdir) seçeneğini kullanabiliriz. ayrıntı özelliğini ayarlayın:

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

/backups/192.168.56.102_rootfiles.backup dizininde bulunan kısmi artımlı yedeklemelerin sayısını ve tarihini listelemek için şunu çalıştırabiliriz:

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

Cron Kullanarak rdiff-back Yedeklemesini Otomatikleştirme

Başarılı bir yedeklemeden sonra özet istatistikleri --print-statistics ile yazdırabiliriz. Ancak bu seçeneği ayarlamazsak bilgiler oturum istatistikleri dosyasında bulunmaya devam edecektir. Bu seçenekle ilgili daha fazla bilgiyi man sayfasının İSTATİSTİK bölümünde bulabilirsiniz.

Ve –remote-schema bayrağı uzak bir bilgisayara bağlanmak için alternatif bir yöntem belirlememizi sağlar.

Şimdi 192.168.56.10 yedekleme sunucusunda aşağıdaki gibi bir backup.sh betiği oluşturarak başlayalım:

cd ~/bin
vi backup.sh

Aşağıdaki satırları script dosyasına ekleyin.

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

Dosyayı kaydedin ve çıkın, ardından komut dosyasını 192.168.56.10 yedekleme sunucusundaki crontab'a eklemek için aşağıdaki komutu çalıştırın:

crontab -e

Yedekleme komut dosyanızı her gün gece yarısında çalıştırmak için bu satırı ekleyin:

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

Crontab'ı kaydedin ve kapatın, artık yedekleme işlemini başarıyla otomatikleştirdik. Beklendiği gibi çalıştığından emin olun.

Ek bilgi, kapsamlı kullanım seçenekleri ve örnekler için rdiff-backup kılavuz sayfasını okuyun:

man rdiff-backup

rdiff-backup Ana Sayfası: http://www.nongnu.org/rdiff-backup/

Şimdilik bu kadar! Bu eğitimde, Linux'ta yerel/uzaktan artımlı yedekleme için kullanımı kolay bir Python betiği olan rdiff-backup'ın nasıl kurulacağını ve temel olarak nasıl kullanılacağını gösterdik. Aşağıdaki geri bildirim bölümü aracılığıyla düşüncelerinizi bizimle paylaşın.