Bacula - backup danych

Z wiki linux-user
Skocz do: nawigacji, wyszukiwania
m (Konfiguracja pliku bacula-fd.conf - File Daemon)
m (Instalacja serwera bacula)
 
Linia 15: Linia 15:
 
== Instalacja serwera bacula ==
 
== Instalacja serwera bacula ==
  
Zacznę od tego, że instalację przeprowadziłem na systemie '''Ubuntu Server 11.04''', system 32 bitowy i z tej instalacji też wzoruję się przy pisaniu tego howto. Instalacja na innych systemach może nieznacznie różnić się od siebie, jednak sama konfiguracja oprogramowania baculi powinna być już wszędzie taka sama.
+
Zacznę od tego, że instalację przeprowadziłem na systemie '''[[Ubuntu]] Server 11.04''' oraz '''[[CentOS]] 6.3''', system 32 bitowy i z tej instalacji też wzoruję się przy pisaniu tego howto. Instalacja na innych systemach może nieznacznie różnić się od siebie, jednak sama konfiguracja oprogramowania baculi powinna być już wszędzie taka sama.
 
Potrzebne oprogramowanie do działania baculi zaznaczyłem w trakcie instalacji systemu "''[[LAMP]] Server''" , również w trakcie instalacji skonfigurowałem hasło do roota dla bazy danych MySql. Jeśli masz zainstalowany już system Ubuntu Serevr i nie chcesz instalować go jeszcze raz to oczywiście możesz samodzielnie dociągnąć wszystkie potrzebne paczki, (instalacje można zrobić na różnych serwerach np jeden demon na jednej fizycznej maszynie) sprowadza się do wydania komendy przez użytkownika root
 
Potrzebne oprogramowanie do działania baculi zaznaczyłem w trakcie instalacji systemu "''[[LAMP]] Server''" , również w trakcie instalacji skonfigurowałem hasło do roota dla bazy danych MySql. Jeśli masz zainstalowany już system Ubuntu Serevr i nie chcesz instalować go jeszcze raz to oczywiście możesz samodzielnie dociągnąć wszystkie potrzebne paczki, (instalacje można zrobić na różnych serwerach np jeden demon na jednej fizycznej maszynie) sprowadza się do wydania komendy przez użytkownika root
 
* w systemie [[CentOS]]
 
* w systemie [[CentOS]]
Linia 90: Linia 90:
 
   
 
   
 
  Director {
 
  Director {
  Name = ogrody-dir #nazwa zarzadcy
+
  Name = serwer-dir #nazwa zarzadcy
 
  Password = "qwerty123-dir" #haslo, uzywaja programy łączące się z zarządcy
 
  Password = "qwerty123-dir" #haslo, uzywaja programy łączące się z zarządcy
 
  DIR Address = 192.168.2.15 #adres IP interfejsu sieciowego
 
  DIR Address = 192.168.2.15 #adres IP interfejsu sieciowego
Linia 141: Linia 141:
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
  LabelFormat = "serwer-ogrody-plik-poniedzialek-"  
+
  LabelFormat = "serwer-serwer-plik-poniedzialek-"  
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  }
 
  }
Linia 151: Linia 151:
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
  LabelFormat = "serwer-ogrody-plik-wtorek-"
+
  LabelFormat = "serwer-serwer-plik-wtorek-"
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  }
 
  }
Linia 161: Linia 161:
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
  LabelFormat = "serwer-ogrody-plik-sroda-"
+
  LabelFormat = "serwer-serwer-plik-sroda-"
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  }
 
  }
Linia 171: Linia 171:
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
  LabelFormat = "serwer-ogrody-plik-czwartek-"
+
  LabelFormat = "serwer-serwer-plik-czwartek-"
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  }
 
  }
Linia 181: Linia 181:
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Volume Retention = 14 days #czas zachowania danych na woluminie, po upłynięciu dane stają się przedawnione i możliwy jest ponowny zapis na nich
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
 
  Maximum Volume Bytes = 2000 MB # maksymalny rozmiar voluminu
  LabelFormat = "serwer-ogrody-plik-piatek-"
+
  LabelFormat = "serwer-serwer-plik-piatek-"
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  Storage = Dysk-Pendrive #nazwa urzadzenia z sekcji Storage
 
  }
 
  }
Linia 561: Linia 561:
 
  }
 
  }
  
== Konfiguracja pliku bacula-fd.conf - File Daemon ==
+
== Plik bacula-sd.conf - Storage Daemon ==
 +
Konfiguracja demona magazynowania odbywa się w pliku '''bacula-sd.conf'''. Storage Daemon baculi definiuje gdzie będą odkładane pliki backupu.
 +
robimy kopie orginalnego pliku
 +
mv bacula-sd.conf bacula-sd.conf-org
 +
i tworzymy własny
 +
touch bacula-sd.conf
 +
edytujemy plik bacula-sd.conf
 +
* Storage – główna konfiguracja demona magazynowania
 +
* Director – dane zarządcy uprawnionego do używania urządzeń demona magazynowania
 +
* Device – definicja urządzenia archiwizującego,i np pendriva
 +
* Messages – opcje przekazywania logów demona magazynowania do serwisu zarządcy
 +
Storage {
 +
  Name = serwer-sd #nazwa, brak powiązania z innymi sekcjami
 +
  WorkingDirectory = "/var/spool/bacula" #kopiujemy z orginalnych plików
 +
  Pid Directory = "/var/run" #kopiujemy z orginalnych plików
 +
  SD Address = 192.168.2.15 # ip bacula-sd
 +
  SD Port = 9103 #domyślny port bacula-sd
 +
  Maximum Concurrent Jobs = 1 #liczba wykonywanych jednocześnie działań na dysku (jedno urządzenie może wykonywać jedno zadanie oprócz taśm z kilkoma napędami)
 +
}
 +
Director {
 +
  Name = serwer-dir # nazwa directora z pliku bacula-dir.conf
 +
  Password = "qwerty123-sd" #hasło bacula-sd, definiowane również w pliku bacula-dir.conf w sekcji Storage
 +
}
 +
Device {
 +
  Name = "Urzadzenie pendrive" #nazwa urządzenia, używana w pliku bacula-dir w sekcji Storage
 +
  Archive Device = /mnt/usb/ #lokalizacja urządzenia na którym będzie przechowywana kopia zapasowa
 +
  Device Type = File #typ urządzenia File, Tape, Fifo, DVD
 +
  Media Type = Pliki-na-usb # nazwa typu nośnika, używana również w sekcji storage  w pliku bacula-dir
 +
  LabelMedia = yes;
 +
  Removable Media = yes; #yes/no jeśli urządzenia wyjmowalne np usb, DVD to yes, jeśli np hdd to no
 +
  Random Access = yes; #jeśli napęd taśmowy to no
 +
  Requires Mount = yes; #jeśli urządzenie wymienne i samo się nie montuje to yes
 +
  Mount Point = /mnt/usb/ #gdzie będzie zamontowane urządzenie
 +
  Mount Command = "/bin/mount /dev/sdb1 /mnt/usb/" #komenda do montowania pendriva
 +
  Unmount Command = "/bin/umount /mnt/usb/" #komenda do odmontowania urządzenia
 +
}
 +
Messages {
 +
  Name = serwer-sd-raport #nazwa własna nie używana nigdzie indziej
 +
  Director = serwer-dir = all #nazwa zarządcy oraz poziom logowania all - wszystko
 +
}
 +
Należy pamiętać o sprawdzeniu montowania USB czy na pewno u was montuje się na ''sdb1'' należy pamiętać również o stworzeniu katalogu ''/mnt/usb''
 +
 
 +
== Plik bacula-fd.conf - File Daemon ==
  
 
Plik '''bacula-fd''' jest odpowiedzialny za konfigurację demona File Daemon w baculi. Jest on konfigurowany na komputerze klienta. W tej konfiguracji klient jest na tej samej maszynie co serwer baculi.  
 
Plik '''bacula-fd''' jest odpowiedzialny za konfigurację demona File Daemon w baculi. Jest on konfigurowany na komputerze klienta. W tej konfiguracji klient jest na tej samej maszynie co serwer baculi.  
Linia 571: Linia 613:
 
i edytujemy plik bacula-fd.conf
 
i edytujemy plik bacula-fd.conf
 
  FileDaemon {
 
  FileDaemon {
   Name = ogrody-fd #nazwa zasobu, nigdzie indziej nie używana
+
   Name = serwer-fd #nazwa zasobu, nigdzie indziej nie używana
 
   FD Address = 192.168.2.15 #IP klienta, tam gdzie jest uruchomiony bacula-fd
 
   FD Address = 192.168.2.15 #IP klienta, tam gdzie jest uruchomiony bacula-fd
 
   FD Port = 9102 #numer portu na którym nasłuchuje klient
 
   FD Port = 9102 #numer portu na którym nasłuchuje klient
Linia 579: Linia 621:
 
  }
 
  }
 
  Director {
 
  Director {
   Name = ogrody-dir # nazwa zarzadcy uprawnionego do łączenia się z klientem
+
   Name = serwer-dir # nazwa zarzadcy uprawnionego do łączenia się z klientem
 
   Password = "qwerty123-fd" #hasło, którym director będzie się autoryzować u klienta, musi byc takie samo jak w pliku bacula-dir odpowiednia sekcja Client
 
   Password = "qwerty123-fd" #hasło, którym director będzie się autoryzować u klienta, musi byc takie samo jak w pliku bacula-dir odpowiednia sekcja Client
 
  }  
 
  }  
 
  Messages {
 
  Messages {
   Name = ogrody-fd-raport-klient #nazwa zasobu, nigdzie indziej nie używana
+
   Name = serwer-fd-raport-klient #nazwa zasobu, nigdzie indziej nie używana
   Director = ogrody-dir = all, !skipped, !restored #nazwa zarządcy oraz poziom logowania all, oprócz przywracania danych i zignorowanych
+
   Director = serwer-dir = all, !skipped, !restored #nazwa zarządcy oraz poziom logowania all, oprócz przywracania danych i zignorowanych
 
  }
 
  }
 
   
 
   
 
Uwaga hasło "''qwerty123-fd''"  jest przykładowe i powinno być zmienione, tak samo jak adresy IP nazwy hostów nazwy backupów i inne. Musisz dostosować plik do swoich potrzeb tutaj podany jest tylko wzór.
 
Uwaga hasło "''qwerty123-fd''"  jest przykładowe i powinno być zmienione, tak samo jak adresy IP nazwy hostów nazwy backupów i inne. Musisz dostosować plik do swoich potrzeb tutaj podany jest tylko wzór.
 
+
== Bconsole ==
 +
Plik konfiguracyjny konsoli baculi to  '''bconsole.conf''' znajdujący się w katalogu ''/etc/bacula/''
 +
dla naszej konfiguracji plik może wyglądać jak poniżej
 +
Director {
 +
  Name = serwer-dir #z pliku bacula-dir, sekcja director
 +
  DIRport = 9101 #port na jakim działa bacula-director
 +
  address = 192.168.2.15 #ip serwera bacula-director
 +
  Password = "qwerty123-dir" # hasło do directora
 +
}
 +
=== Przywracanie danych za pomocą bconsole ===
 +
Aby używać konsoli baculi wydajemy polecenie jako użytkownik [[root]]
 +
bconsole
 +
aby przywrócić pliki, w konsoli baculi wydajemy polecenie
 +
restore
 +
i wybieramy jedną z opcji.
 +
Aby zaznaczyć plik lub pliki do przywrócenia wydajemy polecenie
 +
mark jakiś_plik
 +
mark * #przywracamy wszystkie pliki
 +
na koniec wydajemy polecenie
 +
done
 +
wybieramy z jakiego czasu chcemy przywrócić kopię np
 +
1
 +
potwierdzamy za pomocą polecenia
 +
yes
 +
i dajemy
 +
exit
 +
całość może wyglądać tak
 +
$ '''bconsole'''
 +
Connecting to Director 192.168.2.15:9101
 +
1000 OK: ogrody-dir Version: 5.0.0 (26 January 2010)
 +
Enter a period to cancel a command.
 +
*'''restore'''
 +
Automatically selected Catalog: Baza-danych-bacula
 +
Using Catalog "Baza-danych-bacula"
 +
First you select one or more JobIds that contain files
 +
to be restored. You will be presented several methods
 +
of specifying the JobIds. Then you will be allowed to
 +
select which files from those JobIds are to be restored.
 +
To select the JobIds, you have the following choices:
 +
    1: List last 20 Jobs run
 +
    2: List Jobs where a given File is saved
 +
    3: Enter list of comma separated JobIds to select
 +
    4: Enter SQL list command
 +
    5: Select the most recent backup for a client
 +
    6: Select backup for a client before a specified time
 +
    7: Enter a list of files to restore
 +
    8: Enter a list of files to restore before a specified time
 +
    9: Find the JobIds of the most recent backup for a client
 +
    10: Find the JobIds for a backup for a client before a specified time
 +
    11: Enter a list of directories to restore for found JobIds
 +
    12: Select full restore to a specified Job date
 +
    13: Cancel
 +
Select item:  (1-13): '''12'''
 +
Enter JobId to get the state to restore: '''50'''
 +
Selecting jobs to build the Full state at 2012-09-18 00:05:03
 +
You have selected the following JobId: 50
 +
Building directory tree for JobId(s) 50 ...  ++++++++++++++++++++++++++++++++++++++++++++++
 +
984 files inserted into the tree.
 +
You are now entering file selection mode where you add (mark) and
 +
remove (unmark) files to be restored. No files are initially added, unless
 +
you used the "all" keyword on the command line.
 +
Enter "done" to leave this mode.
 +
cwd is: /
 +
$ '''ls'''
 +
var/
 +
$ '''mark *'''
 +
1,000 files marked.
 +
$ '''done'''
 +
Bootstrap records written to /var/spool/bacula/serwer-dir.restore.1.bsr
 +
The job will require the following
 +
  Volume(s)                Storage(s)                SD Device(s)
 +
=========================================================================== 
 +
    serwer-serwer-plik-wtorek Dysk-Pendrive            Urzadzenie pendrive     
 +
Volumes marked with "*" are online.
 +
1,000 files selected to be restored.
 +
The defined Restore Job resources are:
 +
    1: Przywracanie-plikow-z-baza_danych-poniedzialek
 +
    2: Przywracanie-plikow-z-baza_danych-wtorek
 +
    3: Przywracanie-plikow-z-baza_danych-sroda
 +
    4: Przywracanie-plikow-baza_danych-czwartek
 +
    5: Przywracanie-plikow-z-baza_danych-piatek
 +
    6: Przywracanie-plikow-z-samby-poniedzialek
 +
    7: Przywracanie-plikow-z-samby-wtorek
 +
    8: Przywracanie-plikow-z-samby-sroda
 +
    9: Przywracanie-plikow-samby-czwartek
 +
    10: Przywracanie-plikow-z-samby-piatek
 +
Select Restore Job (1-10): '''2'''
 +
Automatically selected Client: backup_na_pendrive
 +
Run Restore job
 +
JobName:        Przywracanie-plikow-z-baza_danych-wtorek
 +
Bootstrap:      /var/spool/bacula/serwer-dir.restore.1.bsr
 +
Where:          /root/bacula/restore-wtorek
 +
Replace:        always
 +
FileSet:        Baza-danych-postgresql
 +
Backup Client:  backup_na_pendrive
 +
Restore Client:  backup_na_pendrive
 +
Storage:        Dysk-Pendrive
 +
When:            2012-09-16 15:34:27
 +
Catalog:        Baza-danych-bacula
 +
Priority:        10
 +
Plugin Options:  *None*
 +
OK to run? (yes/mod/no): '''yes'''
 +
Job queued. JobId=56
 +
*'''exit'''
 +
przywrócone pliki znajdują się w ścieżce ''/root/bacula/restor-DZIEN_TYGODNIA''
  
 
<br /><google1 style="4"></google1>
 
<br /><google1 style="4"></google1>

Aktualna wersja na dzień 20:54, 18 wrz 2012

Osobiste
Przestrzenie nazw

Warianty
Działania
Nawigacja
Narzędzia


Sponsor serwisu

Firma informatyczna ITProjek Bydgoszcz usługi informacztyczne, serwery, linux, windows, strony www, hosting, sieci komputerowe, system archiwizacji danych