{"id":15,"date":"2008-10-12T22:40:00","date_gmt":"2008-10-12T20:40:00","guid":{"rendered":"http:\/\/www.butschek.de\/?p=11"},"modified":"2014-02-07T11:30:36","modified_gmt":"2014-02-07T10:30:36","slug":"fullbackup-mit-tar","status":"publish","type":"post","link":"https:\/\/www.butschek.de\/2008\/10\/12\/fullbackup-mit-tar\/","title":{"rendered":"Fullbackup mit tar"},"content":{"rendered":"

\"\"<\/a>Meinen Server sichere ich gerne vollst\u00e4ndig, da ich so im Falle eines Ausfalls schnell wieder an die Daten komme. Sofern man keine Technologien wie Snapshot & Co nutzen kann, gen\u00fcgt hierzu auch ein einfaches tar<\/a>.<\/p>\n

Erstmal sollte man einige Verzeichnisse ausnehmen, z.B. \/proc, \/dev oder \/sys. Auch k\u00f6nnen Temp-Verzeichnisse sowie \/var\/run und \/var\/lock ausgenommen werden. Je nachdem, wie wichtig die Logfiles sind, k\u00f6nnen die auch weg, brauchen sie doch nur viel Platz.<\/p>\n

Die Spool-Files vom Mailserver sind oft auch unsinnig: Ein 6h altes Backup enth\u00e4lt viele Mails, die l\u00e4ngst zugestellt sind, andererseits keine Mails der letzten 6 Stunden. Sowas lohnt im Backup nicht. Wer viel Wert auf das Mailbackup legt, k\u00f6nnte h\u00f6chstens das aktuelle Spool-Verzeichnis sehr h\u00e4ufig per rsync<\/a> anderswo sichern.<\/p>\n

Datenbanken sollten nicht live weggezogen werden, besser ist eine vorher erstellte konsistente Kopie (z.B. ein MySQL Dump), die im Backup landet, w\u00e4hrend das Arbeitsverzeichnis der Datenbank ausgenommen wird. In meinem Fall ist das \/var\/lib\/mysql.<\/p>\n

Eine Sache ist f\u00fcr die Herstellung noch ganz wichtig: Es sollte nicht das Verzeichnis selbst vom Backup ausgenommen werden, sondern nur dessen Inhalt. Das Verzeichnis (samt zugeh\u00f6riger Owner- und Rechteeingestellungen) sollte im Backup bleiben. In tar geht das so, dass man das Verzeichnis nicht mit ‚–exclude=pfad‘ sondern mit ‚–exclude=pfad\/*‘ ausnimmt.<\/p>\n

Zuletzt sollte man das Backup selbst auch noch ausnehmen – nicht w\u00e4re d\u00fcmmer als eine rekursive Sicherung des Backups selbst. Das Ergebnis als Kommando sieht dann so aus:<\/p>\n

tar czf \/pfad\/zum\/backup.tgz \\\r\n    --exclude=proc\/* \\\r\n    --exclude=dev\/* \\\r\n    --exclude=sys\/* \\\r\n    --exclude=tmp\/* \\\r\n    --exclude=var\/tmp\/* \\\r\n    --exclude=var\/run\/* \\\r\n    --exclude=var\/lock\/* \\\r\n    --exclude=var\/log\/* \\\r\n    --exclude=var\/lib\/mysql\/* \\\r\n    --exclude=var\/spool\/postfix\/* \\\r\n    --exclude=pfad\/zum\/backup.tgz \\\r\n    \/<\/pre>\n

Die am Ende der Zeilen zeigen der Bash an, dass die Zeile noch nicht abgeschlossen ist. So lassen sich mehrzeilige Kommandos eingeben, was der \u00dcbersichtlichkeit dient. Das \/ am Ende ist wichtig, es sagt tar, dass wir \/ sichern wollen, also die ganze Platte.<\/p>\n","protected":false},"excerpt":{"rendered":"

Meinen Server sichere ich gerne vollst\u00e4ndig, da ich so im Falle eines Ausfalls schnell wieder an die Daten komme. Sofern man keine Technologien wie Snapshot & Co nutzen kann, gen\u00fcgt hierzu auch ein einfaches tar. Erstmal sollte man einige Verzeichnisse ausnehmen, z.B. \/proc, \/dev oder \/sys. Auch k\u00f6nnen Temp-Verzeichnisse sowie \/var\/run und \/var\/lock ausgenommen werden. […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[11,45,66,72],"_links":{"self":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/15"}],"collection":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":4,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":979,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/posts\/15\/revisions\/979"}],"wp:attachment":[{"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.butschek.de\/wp-json\/wp\/v2\/tags?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}