<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=NRW%3AArbeitsgruppe%2FTechnik%2FDokumentation%2FBackup</id>
	<title>NRW:Arbeitsgruppe/Technik/Dokumentation/Backup - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=NRW%3AArbeitsgruppe%2FTechnik%2FDokumentation%2FBackup"/>
	<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=NRW:Arbeitsgruppe/Technik/Dokumentation/Backup&amp;action=history"/>
	<updated>2026-04-27T02:57:05Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Piratenwiki Mirror</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikimirror.piraten.tools/wiki/index.php?title=NRW:Arbeitsgruppe/Technik/Dokumentation/Backup&amp;diff=55860228&amp;oldid=prev</id>
		<title>imported&gt;Ka'imi: /* Fehler die man nur einmal macht */ damit Ihr nicht noch einen anderen Fehler macht =P</title>
		<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=NRW:Arbeitsgruppe/Technik/Dokumentation/Backup&amp;diff=55860228&amp;oldid=prev"/>
		<updated>2013-01-18T16:34:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Fehler die man nur einmal macht: &lt;/span&gt; damit Ihr nicht noch einen anderen Fehler macht =P&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Kategorie:Skin:NRWBP]]&lt;br /&gt;
{{Navigationsleiste_Technik}}&lt;br /&gt;
&lt;br /&gt;
== Programme ==&lt;br /&gt;
Es gibt 2 Programme für die Steuerung von Bacula. Ein Comandozeilenorientieres (bconsole) und ein Graphisches (bat). Zunächst einmal deren Einrichtung:&lt;br /&gt;
&lt;br /&gt;
=== bconsole ===&lt;br /&gt;
Auf backup befindet sich ein fertig eingerichtetes bconsole. Wer dort Zugriff hat kann sich einfach einloggen und bconsole starten.&lt;br /&gt;
* Um bconsole auf seinem eigenen Recher zu installieren:&lt;br /&gt;
** apt-get install bacula-console&lt;br /&gt;
** vpn mit Sicht auf backup muss an sein.&lt;br /&gt;
** /etc/bacula/bconsole.conf von backup kopieren.&lt;br /&gt;
** &amp;gt;bconsole -c ./bconsole.conf&lt;br /&gt;
** fertig!&lt;br /&gt;
&lt;br /&gt;
=== bat ===&lt;br /&gt;
Bat geht (da auf backup kein X läuft) nur auf dem eigenen Rechner.&lt;br /&gt;
*Um bat zu installieren:&lt;br /&gt;
** apt-get install bacula-console-qt&lt;br /&gt;
** vpn mit Sicht auf  backup muss an sein.&lt;br /&gt;
** /root/bat.conf von backup kopieren.&lt;br /&gt;
** bat -c ./bat.conf&lt;br /&gt;
** fertig!&lt;br /&gt;
&lt;br /&gt;
Als nächstes beschreibe ich einige Standardabläufe. Frei nach dem Prinzip: &amp;quot;Keiner will Backup aber alle wollen restore&amp;quot; fange ich mal mit letzerem an.&lt;br /&gt;
&lt;br /&gt;
== Restore ==&lt;br /&gt;
=== Restore von Files oder Verzeichnissen. ===&lt;br /&gt;
==== bconsole ====&lt;br /&gt;
&amp;gt;'''bconsole'''&lt;br /&gt;
  *'''restore'''&lt;br /&gt;
  Automatically selected Catalog: MyCatalog&lt;br /&gt;
  Using Catalog &amp;quot;MyCatalog&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  First you select one or more JobIds that contain files&lt;br /&gt;
  to be restored. You will be presented several methods&lt;br /&gt;
  of specifying the JobIds. Then you will be allowed to&lt;br /&gt;
  select which files from those JobIds are to be restored.&lt;br /&gt;
  &lt;br /&gt;
  To select the JobIds, you have the following choices:&lt;br /&gt;
       1: List last 20 Jobs run&lt;br /&gt;
       2: List Jobs where a given File is saved&lt;br /&gt;
       3: Enter list of comma separated JobIds to select&lt;br /&gt;
       4: Enter SQL list command&lt;br /&gt;
       5: Select the most recent backup for a client&lt;br /&gt;
       6: Select backup for a client before a specified time&lt;br /&gt;
       7: Enter a list of files to restore&lt;br /&gt;
       8: Enter a list of files to restore before a specified time&lt;br /&gt;
       9: Find the JobIds of the most recent backup for a client&lt;br /&gt;
      10: Find the JobIds for a backup for a client before a specified time&lt;br /&gt;
      11: Enter a list of directories to restore for found JobIds&lt;br /&gt;
      12: Select full restore to a specified Job date&lt;br /&gt;
      13: Cancel&lt;br /&gt;
  Select item:  (1-13): '''5'''&lt;br /&gt;
  Defined Clients:&lt;br /&gt;
       1: access-piratennrw-fd&lt;br /&gt;
       2: applejack-piratennrw-fd&lt;br /&gt;
       3: backup-piratennrw-fd&lt;br /&gt;
       4: blog-piratennrw-fd&lt;br /&gt;
       5: bunker-piratennrw-fd&lt;br /&gt;
       6: esbrennt-piratennrw-fd&lt;br /&gt;
       7: fraktion-piratennrw-fd&lt;br /&gt;
       8: helpdesk-piratennrw-fd&lt;br /&gt;
       9: kalender-piratennrw-fd&lt;br /&gt;
      10: lists-piratennrw-fd&lt;br /&gt;
      11: lpt-dev-piratennrw-fd&lt;br /&gt;
      12: mail-piratennrw-fd&lt;br /&gt;
      13: map-piratennrw-fd&lt;br /&gt;
      14: monitoring-piratennrw-fd&lt;br /&gt;
      15: mumble-piratennrw-fd&lt;br /&gt;
      16: pad-piratennrw-fd&lt;br /&gt;
      17: rainbowdash-piratennrw-fd&lt;br /&gt;
      18: verwaltung-piratennrw-fd&lt;br /&gt;
      19: vorstand-piratennrw-fd&lt;br /&gt;
      20: wikimirror-piratennrw-fd&lt;br /&gt;
      21: www-piratennrw-fd&lt;br /&gt;
      22: wwwcache-piratennrw-fd&lt;br /&gt;
  Select the Client (1-22): '''15'''&lt;br /&gt;
  Automatically selected FileSet: Full Set Client&lt;br /&gt;
  +-------+-------+----------+-------------+---------------------+------------+&lt;br /&gt;
  | JobId | Level | JobFiles | JobBytes    | StartTime           | VolumeName |&lt;br /&gt;
  +-------+-------+----------+-------------+---------------------+------------+&lt;br /&gt;
  |   945 | F     |   40,147 | 927,652,983 | 2012-09-02 04:52:03 | Full-0296  |&lt;br /&gt;
  | 1,253 | D     |      391 | 210,297,510 | 2012-09-16 03:39:33 | Diff-0249  |&lt;br /&gt;
  | 1,267 | I     |      218 | 187,463,121 | 2012-09-17 03:09:12 | Incr-0201  |&lt;br /&gt;
  | 1,275 | I     |      218 | 187,472,891 | 2012-09-17 03:30:55 | Incr-0282  |&lt;br /&gt;
  | 1,289 | I     |      170 | 118,759,645 | 2012-09-18 03:07:58 | Incr-0216  |&lt;br /&gt;
  | 1,297 | I     |      170 | 118,764,114 | 2012-09-18 03:24:46 | Incr-0224  |&lt;br /&gt;
  +-------+-------+----------+-------------+---------------------+------------+&lt;br /&gt;
  You have selected the following JobIds: 945,1253,1267,1275,1289,1297&lt;br /&gt;
  &lt;br /&gt;
  Building directory tree for JobId(s) 945,1253,1267,1275,1289,1297 ...&lt;br /&gt;
  +++++++++++++++++++++++++++++++++++++++++++++&lt;br /&gt;
  36,334 files inserted into the tree.&lt;br /&gt;
  &lt;br /&gt;
  You are now entering file selection mode where you add (mark) and&lt;br /&gt;
  remove (unmark) files to be restored. No files are initially added, unless&lt;br /&gt;
  you used the &amp;quot;all&amp;quot; keyword on the command line.&lt;br /&gt;
  Enter &amp;quot;done&amp;quot; to leave this mode.&lt;br /&gt;
  &lt;br /&gt;
  cwd is: /&lt;br /&gt;
  $ '''help'''&lt;br /&gt;
    Command    Description&lt;br /&gt;
    =======    ===========&lt;br /&gt;
    add        add dir/file to be restored recursively, wildcards allowed&lt;br /&gt;
    cd         change current directory&lt;br /&gt;
    count      count marked files in and below the cd&lt;br /&gt;
    delete     delete dir/file to be restored recursively in dir&lt;br /&gt;
    dir        long list current directory, wildcards allowed&lt;br /&gt;
    done       leave file selection mode&lt;br /&gt;
    estimate   estimate restore size&lt;br /&gt;
    exit       same as done command&lt;br /&gt;
    find       find files, wildcards allowed&lt;br /&gt;
    help       print help&lt;br /&gt;
    ls         list current directory, wildcards allowed&lt;br /&gt;
    lsmark     list the marked files in and below the cd&lt;br /&gt;
    mark       mark dir/file to be restored recursively, wildcards allowed&lt;br /&gt;
    markdir    mark directory name to be restored (no files)&lt;br /&gt;
    pwd        print current working directory&lt;br /&gt;
    unmark     unmark dir/file to be restored recursively in dir&lt;br /&gt;
    unmarkdir  unmark directory name only no recursion&lt;br /&gt;
    quit       quit and do not do restore&lt;br /&gt;
    ?          print help&lt;br /&gt;
  &lt;br /&gt;
  $ '''cd etc'''&lt;br /&gt;
  cwd is: /etc/&lt;br /&gt;
  $ '''add hosts'''&lt;br /&gt;
  1 file marked.&lt;br /&gt;
  $ '''done'''&lt;br /&gt;
  Bootstrap records written to /var/lib/bacula/backup-piratennrw-dir.restore.1.bsr&lt;br /&gt;
  &lt;br /&gt;
  The job will require the following&lt;br /&gt;
     Volume(s)                 Storage(s)                SD Device(s)&lt;br /&gt;
  ===========================================================================&lt;br /&gt;
     &lt;br /&gt;
      Full-0296                 File                      FileStorage              &lt;br /&gt;
  &lt;br /&gt;
  Volumes marked with &amp;quot;*&amp;quot; are online.&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  1 file selected to be restored.&lt;br /&gt;
  &lt;br /&gt;
  Run Restore job&lt;br /&gt;
  JobName:         RestoreFiles&lt;br /&gt;
  Bootstrap:       /var/lib/bacula/backup-piratennrw-dir.restore.1.bsr&lt;br /&gt;
  Where:           /mnt/qnap/bacula&lt;br /&gt;
  Replace:         always&lt;br /&gt;
  FileSet:         Full Set Client&lt;br /&gt;
  Backup Client:   mumble-piratennrw-fd&lt;br /&gt;
  Restore Client:  mumble-piratennrw-fd&lt;br /&gt;
  Storage:         File&lt;br /&gt;
  When:            2012-09-18 23:12:26&lt;br /&gt;
  Catalog:         MyCatalog&lt;br /&gt;
  Priority:        10&lt;br /&gt;
  Plugin Options:  *None*&lt;br /&gt;
  OK to run? (yes/mod/no): '''no'''&lt;br /&gt;
  Job not run.&lt;br /&gt;
  *&lt;br /&gt;
&lt;br /&gt;
==== bat ====&lt;br /&gt;
&lt;br /&gt;
FIXME&lt;br /&gt;
&lt;br /&gt;
== Einrichten eines neuen Client ==&lt;br /&gt;
&lt;br /&gt;
=== Installieren eines bacula-client auf neuer VM ===&lt;br /&gt;
* apt-get install bacula-client&lt;br /&gt;
* edit /etc/bacula/bacula-client.conf (alles in spitzen Klammern bearbeiten):&lt;br /&gt;
  # Bacula File Daemon Configuration file&lt;br /&gt;
  #&lt;br /&gt;
  #  For Bacula release 5.0.2 (28 April 2010) -- debian squeeze/sid&lt;br /&gt;
  &lt;br /&gt;
  Director {&lt;br /&gt;
    Name = backup-piratennrw-dir&lt;br /&gt;
    Password = &amp;quot;&amp;lt;fettes Passwort&amp;gt;&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  # Restricted Director, used by tray-monitor&lt;br /&gt;
  Director {&lt;br /&gt;
    Name = &amp;lt;VMname&amp;gt;-piratennrw-mon&lt;br /&gt;
    Password = &amp;quot;&amp;lt;fettes Monitor Passwort&amp;gt;&amp;quot;&lt;br /&gt;
    Monitor = yes&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  FileDaemon {&lt;br /&gt;
    Name = &amp;lt;VMname&amp;gt;-piratennrw-fd&lt;br /&gt;
    FDAddress = 192.168.42.&amp;lt;IP&amp;gt;&lt;br /&gt;
    FDport = 9102&lt;br /&gt;
    WorkingDirectory = /var/lib/bacula&lt;br /&gt;
    Pid Directory = /var/run/bacula&lt;br /&gt;
    Maximum Concurrent Jobs = 20&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  Messages {&lt;br /&gt;
    Name = Standard&lt;br /&gt;
    director = backup-piratennrw-dir = all, !skipped, !restored&lt;br /&gt;
  }&lt;br /&gt;
* Passworte zur Doku auf backup in /root/bacula-passwords eintragen.&lt;br /&gt;
* service bacula-client restart&lt;br /&gt;
* falls mysql oder postgresql Datenbanken vorhanden sind:&lt;br /&gt;
** copy /root/backupdbs von backup nach /usr/local/sbin/backupdbs auf dem client&lt;br /&gt;
** chmod 550 /usr/local/sbin/backupdbs&lt;br /&gt;
** edit /root/.my.cnf  anlegen mit folgendem Inhalt:&lt;br /&gt;
  [client]&lt;br /&gt;
  user=root&lt;br /&gt;
  password=&amp;lt;mysql-password&amp;gt;&lt;br /&gt;
  protocol=tcp&lt;br /&gt;
** chmod 400 /root/.my.cnf&lt;br /&gt;
** bei postgresql: TODO (map ist die erste maschine mit postgresql)&lt;br /&gt;
** testen ob backup-script richtig durch läuft durch starten des sript von Hand.&lt;br /&gt;
* client fertig!&lt;br /&gt;
&lt;br /&gt;
=== Eintragen eines neuen Client auf backup ===&lt;br /&gt;
* cd /etc/bacula/clientdefs/&lt;br /&gt;
* edit &amp;lt;VMname&amp;gt;.conf&lt;br /&gt;
  # Client &amp;lt;VMname&amp;gt;.piratenpartei-nrw.de&lt;br /&gt;
  &lt;br /&gt;
  Client {&lt;br /&gt;
    Name = &amp;lt;VMname&amp;gt;-piratennrw-fd&lt;br /&gt;
    Address = 192.168.42.&amp;lt;ip&amp;gt;&lt;br /&gt;
    FDPort = 9102&lt;br /&gt;
    Catalog = MyCatalog&lt;br /&gt;
    Password = &amp;quot;&amp;lt;das fette Client Passwort&amp;gt;&amp;quot;&lt;br /&gt;
    File Retention = 30 days&lt;br /&gt;
    Job Retention = 6 months&lt;br /&gt;
    AutoPrune = yes&lt;br /&gt;
  }&lt;br /&gt;
  Job {   &lt;br /&gt;
          Name                    = &amp;quot;Backup &amp;lt;VMname&amp;gt;&amp;quot;&lt;br /&gt;
          JobDefs                 = &amp;quot;DefaultJobSql&amp;quot; # bei keiner DB Sql entfernen!&lt;br /&gt;
          Client                  = &amp;lt;VMname&amp;gt;-piratennrw-fd&lt;br /&gt;
          FileSet                 = &amp;quot;Full Set Client&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
* service bacula-director restart&lt;br /&gt;
* fertig. Ab der nächsten Nacht wir die Maschine mit gesichert.&lt;br /&gt;
* wer es mag kann mit bconsole oder bat ein erstes Backup sofort anstoßen.&lt;br /&gt;
&lt;br /&gt;
== Aufbau des Backupsystems ==&lt;br /&gt;
Unser Backup läuft Filebasiert mit dem Bacula System [http://www.bacula.org www.bacula.org] . Auf den Hosts und den VMs läuft ein Client der vom Director in der Backup-VM gesteuert wird. Die Maschinen werden so im laufenden Betrieb gesichert. Von den Datenbanken wird vor dem Backup per script ein Dump gezogen. Die Backups werden auf einer per iscsi angebundenen qnap gesichert. Die qnap ist in der backupVM gemounted unter /mnt/qnap&lt;br /&gt;
Aktuelle Backupzeiten und Formen:&lt;br /&gt;
* täglich: um 3:05 Uhr incrementell aller Maschinen.  Anschließend full des Catalogs.&lt;br /&gt;
* wöchentlich: um 3:05 Uhr am Sonntag differenziell aller Maschinen.&lt;br /&gt;
* monatlich: um 3:05 Uhr full aller Maschinen.&lt;br /&gt;
&lt;br /&gt;
== Vor- und Nachteile von bacula ==&lt;br /&gt;
* Vorteil: keine Unterbrechung des laufenden Betriebs. Kleine Backupfiles.&lt;br /&gt;
* Nachteil: hoher Arbeitsaufwand bei Ausfall einer ganzen VM oder des Servers.&lt;br /&gt;
&lt;br /&gt;
== TODO für Verbesserungen ==&lt;br /&gt;
* Einrichten eines VM-snapshot-Backup für backup selber (bringt starke Vereinfachung des restore bei Gesamtausfall). Kein Problem, da backup selber ja nicht 24/7 kritisch ist.&lt;br /&gt;
* backupVM remote aufbewahren und lokal starten können. Hift bei der Wiederherstellung der Proxmox-Hosts.&lt;br /&gt;
* postgresql scrip erstellen&lt;br /&gt;
* Vereinheitlichung der Client-Installs. Vereinfacht anlegen neuer VMs (alle Configs gleich machen und sql-Ja/Nein/Typ im script abfragen!)&lt;br /&gt;
* Verschlüsseln des Backup (kommt jetzt mit dem einbinden von bunker)&lt;br /&gt;
* ssl-Verschüsselung der Client-Server Verbindungen (erst akut notwendig wenn wir getrennte Systeme haben)&lt;br /&gt;
* iscsi startet aktuell noch zu spät. mounted noch nicht von alleine nach reboot. (aktuell ein manuelles 'mount /mnt/qnap' nach VM neustat nötig!)&lt;br /&gt;
* Doku verbessern ;-)&lt;br /&gt;
&lt;br /&gt;
== Fehler die man nur einmal macht ==&lt;br /&gt;
* Wenn das Backup des Bacula Catalogs fehlschlägt kann das an falsch gesetzten Rechten unter /etc/bacula liegen. Passiert leicht wenn man einen neuen Client hinzufügt. Dann hilft:&lt;br /&gt;
  chown -R root:bacula /etc/bacula&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:NRW:Arbeitsgruppe Technik| Dokumentation]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Ka'imi</name></author>
	</entry>
</feed>