Jak tworzyć kopię zapasową przy pomocy rdiff-backup?

rdiff-backup to aplikacja, która tworzy kopię zapasową katalogu źródłowego (DANE) do katalogu docelowego (BACKUP – kopia zapasowa). Katalog docelowy posiada obecny stan katalogu źródłowego. W razie awarii cała zawartość katalogu źródłowego jest bezpośrednio dostępna w katalogu docelowym. Wszystkie zmiany katalogu źródłowego są zapisywane jako pliki różnic (kopia przyrostowa) i są przechowywane w specjalnym katalogu wewnątrz katalogu docelowego. Aplikacja rdiff-backup pozwala cofnąć się do dowolnego stanu naszego katalogu, odzyskać pojedynczy plik czy katalog lub po prostu przywrócić wcześniejszą wersję pliku. Aplikacja rdiff-backup zachowuje podkatalogi, twarde dowiązania, pliki dev, uprawnienia, własność UID/GID, czas modyfikacji, atrybuty rozszerzone, acls (lista kontrola dostępu). Program potrafi wydajnie zarządzać przepustowością tak jak rsync. Tworzenie kopii zapasowej może odbywać się za pośrednictwem sieci przy wykorzystaniu bezpiecznego protokołu komunikacyjnego ssh. Aplikacja dostępna jest pod system operacyjny Linux, Windows i Mac OS X (w Max OS X przy użyciu Fink).
 

INSTALACJA

Debian
root@pc# apt-get install rdiff-backup
Ubuntu
user@pc$ sudo apt-get install rdiff-backup

 

TWORZENIE KOPII ZAPASOWEJ

Podstawowa składania komendy:
rdiff-backup katalog_dane/ katalog_backup/

Tworzymy kopię zapasową katalogu /home/robert/DANE/ na dysku usb w katalogu /media/usb/BACKUP/
rdiff-backup /home/robert/DANE /media/usb/BACKUP

Kopia zapasowa danych lokalnych na zdalnym serwerze poprzez ssh
(rdiff-backup musi być zainstalowany na lokalnym komputerze i zdalnym serwerze)
rdiff-backup /home/robert/Dokumenty/ uzytkownik@IP_lub_domena::/media/usb/Dokumenty/

Kopia zapasowa danych zdalnego serwera na lokalny komputer poprzez ssh
(rdiff-backup musi być zainstalowany na zdalnym serwerze i lokalnym komputerze)
rdiff-backup uzytkownik@IP_lub_domena::/media/usb/Dokumenty/ /home/robert/Dokumenty/

 

WERSJE KOPII

Wyświetlamy wszystkie zmiany katalogu kopii danych.
Składnia komendy:
l – lista częściowych kopii przyrostowych
rdiff-backup -l /media/usb/BACKUP

Found 2 increments:
increments.2013-01-20T23:04:41+01:00.dir Sun Jan 20 23:04:41 2013
increments.2013-01-20T23:04:48+01:00.dir Sun Jan 20 23:04:48 2013
Current mirror: Sun Jan 20 23:09:09 2013

Wyświetlamy wszystkie zmiany pliku 1.txt
rdiff-backup -l /media/usb/BACKUP/1.txt
Found 2 increments:
1.txt.2013-01-20T22:52:24+01:00.diff.gz Sun Jan 20 22:52:24 2013
1.txt.2013-01-20T22:56:52+01:00.diff.gz Sun Jan 20 22:56:52 2013
Current mirror: Sun Jan 20 23:09:09 2013

 

Zmiany, które wystąpiły w ciągu ostatniej godziny

rdiff-backup --list-changed-since 1h backup

 

WYSZUKIWANIE KATALOGU LUB PLIKU

find /media/usb/rdiff-backup-data/increments/Dokumenty/wazny_katalog -name ‚plik.txt’

 

PRZYWRACANIE BIEŻĄCEJ WERSJI

W katalogu kopii danych znajduje się aktualna wersja z dnia 20 stycznia 2013 (23:09:09). Do tej wersji można bezpośrednio uzyskać dostęp:
root@localhost# ls -l /media/usb/Dokumenty/
4 -rw-r–r– 1 robert robert 10 2013-01-20 23:01 1.txt
4 -rw-r–r– 1 robert robert 6 2013-01-20 23:04 2.txt
0 -rw-r–r– 1 robert robert 0 2013-01-20 23:09 3.txt
4 drwx—— 3 robert robert 4096 2013-01-20 23:09 rdiff-backup-data

Aby przywrócić np. plik 1.txt wystarczy skopiować go do wybranego katalogu:
cp /media/robert/Dokumenty/1.txt /media/usb/Restore
ls -l /media/robert/Dokumenty/
-rw-r–r– 1 root root 30000000 213-01-20 23:09 1.txt

Aby cofnąć się do zmian z najnowszej kopii możemy użyć zamiast komendy kopiowania cp opcji „restore-as-of now”
rdiff-backup --restore-as-of now /media/usb/Dokumenty /media/usb/restore/
lub forma skrócona
rdiff-backup -r now /media/usb/Dokumenty /media/usb/restore/

 

PRZYWRACANIE STARSZYCH WERSJII KOPII DANYCH

Przywróćmy plik z kopii zapasowej Dokumenty do /media/usb/nazwa_dla_przywroconego_pliku
rdiff-backup /media/usb/Dokumenty/rdiff-backup-data/increments/nazwa_pliku.txt /media/usb/nazwa_pliku.txt

Plik 1.txt został zmieniony kilka razy. Aby przywrócić plik z dnia 10.01.2013 z godziny 12:00:00 należy cofnąć się do odpowiedniej wersji pliku:
rdiff-backup /mnt/katalog-backupu/rdiff-backup-data/increments/1.txt.2013-01-10T12:00:00+01:00.diff.gz /media/usb/1.txt

Aby cofnąć się do zmian sprzed miesiąca użyć opcji „restore-as-of 1M”
rdiff-backup --restore-as-of 1M /media/robert/Dokumenty /media/usb/przywrocone/
lub forma skrócona
rdiff-backup -r 1M /media/robert/Dokumenty /media/usb/przywrocone/

 

USUWANIE KOPII DANYCH STARSZYCH NIŻ 3 miesiące

rdiff-backup --remove-older-than 3M /media/usb/Dokumenty
Kiedy zaistnieje potrzeba usunięcia wielu starszych kopii danych na raz system poinformuje Cię, żebyś zastosował parametr –force
rdiff-backup --force --remove-older-than 3M /media/robert/Dokumenty

FORMATY CZASU
1) now – odnosi się do czasu obecnego
2) 2001-07-15T04:09:38-07:00 – format daty z uwzględnieniem strefy czasowej
3) s (sekundy), m (minuty), h (godziny), D (dni), W (tygodnie), M (miesiące), Y (lata) – można łączyć parametry np. 1h12m
4) YYYY/MM/DD, YYYY-MM-DD, MM/DD/YYYY, or MM-DD-YYYY – format daty w zależności od ustawień systemu
5) XB – określa czas od X wersji przyrostowej

AUTOMATYCZNE WYKONYWANIE KOPII CODZIENNIE O 22:00

crontab -e

# m h dom mon dow command
00 22 * * * rdiff-backup /home/robert/Dokumenty /media/usb/Dokumenty

Przykładowy skrypt w bashu

#!/bin/bash

#stworzenie prostego zabezpieczenia, jeżeli backup się nie zakończył nie uruchomi się kolejny backup
touch /var/lock/backup_rdiff

# katalog danych
data=/root/script/backup/dane

# katalog kopii zapasowych
backup=/root/script/backup/kopia

# podany czas, po którym starsze wersje będą usuwane (1W – 1 week czyli po tygodniu)
older_than=’1W’

# czas rozpoczęcia kopii zapasowej
T=”$(date +%s)”

# sprawdzamy czy katalog danych i kopii istnieją
if [ ! -d $data ] || [ ! -d $backup ]
then
echo “Data or Backup folder not found, exiting.”
rm /var/lock/backup_rdiff
exit 1
else
echo -e “Folder to backup: $data”
echo -e ”Backup storage: $backup”
fi

# usuwamy starsze kopie niż 1 tydzień
echo -e “Cleaning backup older than $older_than”
/usr/bin/rdiff-backup –remove-older-than $older_than $backup

# tworzymy kopię danych
echo -e “Creating backup…”
/usr/bin/rdiff-backup –include-globbing-filelist include-list -v9 $data $backup

# czas zakończenia kopii danych
T=”$(($(date +%s)-T))”
echo -e “Finished in ${T} seconds”
rm /var/lock/backup_rdiff

Zastosowanie dysku zewnętrznego do kopii danych

Jeżeli chcesz stosować dowiązania twarde (hard links) to pamiętaj aby nie formatować dysku twardego na system plików FATlub NTFS.

PROBLEMY:
Q: UpdateError 1.txt File changed from regular file before signature
A: Skopiuj brakujace pliki/katalogi z data do backup
cp data/1.txt backup/1.txt

ŹRÓDŁO: http://rdiff-backup.nongnu.org/docs.html

Backup Tools

Norton Ghost
http://pl.norton.com/ghost/

Acronis http://www.acronis.pl/

Wszystkie poniższe programy znajdują się na płycie Hiren’s Boot CD [1]

CloneDisk 1.9.6
All in one tool for MBR, Partition, Disk, VMWare Disk images vmdk/vmx/vhd, and much more.

COPYR.DMA Build013
A Tool for making copies of hard disks with bad sectors.

CopyWipe 1.14
Copy old hard drive to a new hard drive by copying the entire contents of one drive to another, CopyWipe can also help prevent confidential or private data from being recovered, by securely wiping the contents of a drive.

DiskImage 1.6
Creates and writes disk images files to hard and floppy disks.

DriveImage XML 2.30
backup any drive/partition to an image file, even if the drive is currently in use, a very good freeware alternative to Ghost / Acronis

Drive SnapShot 1.40
creates an exact Disk Image of your system into a file while windows is running.

FastCopy 2.08
The Fastest Copy/Delete Software on Windows.

G4L Ghost 4 Linux 0.34a
a hard disk and partition imaging and cloning tool similar to Norton Ghost.

GImageX 2.0.17
ImageX is used to backup/restore WIM images for Windows XP/Vista and Windows 7.

Image For Dos 2.66
Quickly, easily, and reliably create a complete image backup of all the data located on your hard drive, backups made to CD/DVD/BD are bootable.

Image For Windows 2.66
Backup and restore utility that creates a snapshot of a selected partition or volume, and saves it to disk, or burns it directly to most DVD+RW+R-R-RW or CD-R/RW drives.

ImgBurn 2.5.6.0
Lightweight CD/DVD/HD DVD/Blu-ray burning application, supports BIN, CUE, DI, DVD, GI, IMG, ISO, MDS, NRG and PDI, Ability to build DVD/HD/BD Video discs from a VIDEO_TS/HVDVD_TS/BDAV/BDMV folder, Unicode folder/file names (formerly DVD Decrypter).

InfraRecorder 0.52
An Open source CD/DVD burning software, also create/burn .iso images.

Macrium Reflect 4.2.3775
Create complete backups of your disk partitions, including operating system, installed programs and all your settings.

ODIN 0.3.4
Open Disk Imager in a Nutshell is similar to Drive Snapshot which supports backing up windows while you are using it.

Partition Image – PartImage 0.6.9
supported filesystem includes Ext2, Ext3, Reiserfs, HFS, HPFS, JFS, Xfs, UFS, Fat16, Fat32 and NTFS.

Partition Saving 3.90
A tool to backup/restore partitions (SavePart.exe).

RegBak 1.0
a light-weight and simple utility to create backups of Windows registry files.

Raw Copy 1.2
Useful tool to transfer the data directly from a faulty drive to another drive, built in data recovery function which will also attempt to recover data from bad sectors.

ShadowCopy 2.00
Copy all your files and entire system – even if they are locked by Windows.

SelfImage 1.2.1.92
to create image files of any mounted or unmounted hard disk partition.

Seagate DiscWizard 11.8326
Backup drive/partition to an image file, for Seagate owners (Powered by Acronis TrueImage)

TeraCopy 2.12
TeraCopy is a compact program designed to copy and move files at the maximum possible speed, providing the user a lot of features includes pause, resume, auto shutdown, verify, error recovery and unicode support.

WhitSoft File Splitter 4.5a
a Small File Split / Join Tool.

XXClone 0.58.0
The simple way to clone a Windows disk to another disk, it makes a self-bootable clone of Windows system disk.