ispCP - Board - Support
[ERLEDIGT]ispCP System Backup: HowTo - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+---- Forum: Archiv (/forum-54.html)
+---- Thread: [ERLEDIGT]ispCP System Backup: HowTo (/thread-4733.html)

Pages: 1 2 3 4 5 6 7


[ERLEDIGT]ispCP System Backup: HowTo - menki - 10-19-2008 02:14 AM

da ich unter ispcp eine sicherungs möglichkeit vermisst hatte, habe ich mich in der letzten zeit etwas im internet umgeschaut. ich suchte nach einer kompatibelsten, sichersten und bedienungs- freundlichsten backup lösung unter ispcp. die meisten root server besitzer/mieter bekommen ja grundsätzlich einen ftp backup space automatisch dazu.
da ich bei meinem isp reichlich davon bekommen habe, wollte ich diesen ftp backup space auch nutzen. mit diesem HowTo kann man mittels gpg die sicherungsdaten verschlüsseln und dann per duplicity auf einen entfernten ftp server in verschiedenen blöcken uploaden! Smile

man kann duplicity unter debian per apt-get installieren, aber diese version ist sehr alt und beinhaltet viele bugs die sich nach etwa 3-4 tagen bemerkbar machen. ich wollte diese version absichtlich nicht nutzen weil das einfach keinen sinn bringt, eine so alte/verbuggte version einzusetzen. ich installierte die neueste version auf meinen servern und hatte dann das problem das der heise online ftplicity wrapper (wrapper script für duplicity) mit der neuen version nicht kompatibel sei. da half mir sf.net (sourceforge)! ein paar leute haben dieses wrapper script tatsächlich weiter entwickelt und dieses ist vollstens mit der neuesten version von duplicity kompatibel. Smile

so nun zur sache:

---> zuerst müssen wir die duplicity software unter debian kompatibel machen: wir brauchen diese software (bei bedarf bitte nachinstallieren):

* Python v2.3 or later (http://www.python.org)
* librsync v0.9.6 or later (http://librsync.sourceforge.net)
* GnuPG for encryption (http://www.gnupg.org)
* GnuPGInterface 0.3.2 or later (http://py-gnupg.sourceforge.net)
* NcFTP version 3.1.9 or later (http://www.ncftp.com)
* Boto 0.9d or later (http://code.google.com/p/boto)
* pexpect 2.1 or later (http://pexpect.sourceforge.net)


* Python development files, normally found in module 'python-dev'.
* librsync development files, normally found in module 'librsync-dev'.

# apt-get install python-dev
# apt-get install librsync-dev

---> bitte auch NcFTP per apt installieren:

#apt-get install ncftp

---> wir wechseln ins /tmp verzeichniss und laden uns die neueste duplicity version herunter:
# cd /tmp
# wget http://download.savannah.gnu.org/releases/duplicity/duplicity-0.5.02.tar.gz

---> wir entpacken die neueste duplicity version und starten die installation:
# tar xvzf duplicity-0.5.02.tar.gz
# cd duplicity-0.5.02
# python setup.py install

dabei sollten keine fehler angezeigt werden und es sollte nach der installation ein OK dargestellt bzw. angezeigt werden. everything is fine so in der richtung....

---> anschliessend erstellen wir unseren key:
# gpg –-gen-key

alle mit enter bestätigen bis gefragt wird:

Is this correct? (y/N) --> Y (da sagen wir yes (y)

---> dann geben wir unseren namen und unsere email adresse ein:

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
“backup muster <testuser@loly.com>”

Real name: <– Dein name, backup muster
Email address: <– deine email adresse
Comment:
You selected this USER-ID:
“backup muster <testuser@loly.com>”

Change (N)ame, ©omment, (E)mail or (O)kay/(Q)uit? <– hier bitte ein O als (OK) eingeben!

---> dann müssen wir ein kennwort für die verschlüsselung setzen. dieses kennwort brauchen wir später. bitte gut merken!: Smile

# you need a passphrase to protect your secret key. <– bitte hier ein 8 stelliges passwort eingeben. Smile

---> nun wird der key erstellt. es macht sich ganz gut eine zweite console zu öffnen und ein paar buchstaben einzugeben, sodass der zufallszahlengenerator genügend informationsgehalt erlangen kann: das kann etwas länger auch dauern (hängt vom server ab)!

wenn der key erstellt wurde ist für uns diese zeile am ende wichtig:

# gpg: key _hier_steht_dein_code marked as ultimately trusted

diesen code sowie das von uns eingesetzte kennwort benötigen wir um die daten verschlüsselt auf einen entfernten ftp server abzulegen.

das ziel ist es über das ftplicity wrapper script (OHNE USER EINGABE) per cron full sicherungen bzw. inkrementelle sicherungen automatisierend zu machen!

---> wir laden uns das neueste ftplicity wrapper script, von sourceforge herunter und installieren es, und erstellen am ende ein sicherungs profil: ich nenne dieses profil backup_profile:

# cd /tmp
# wget http://downloads.sourceforge.net/ftplicity/ftplicity_1.4.0b1.tgz?modtime=1213649109&big_mirror=0
# tar xvzf ftplicity_1.4.0b1.tgz
# cp ftplicity_1.4.0b1/ftplicity /usr/local/bin
# ftplicity create backup_profile




---> jetzt können wir erstmallig das ftplicity script starten und dadurch wird eine konfigurations datei in: /root/.ftplicity/backup_profile/conf erstellt.

#ftplicity backup_profile

---> anschliessend editieren wir die /root/.ftplicity/backup_profile/conf datei und passen sie an unsere bedürfnisse an (bitte das backup verzeichniss auf dem entfernten ftp server vor der sicherung erstellen!).

Code:
# gpg key data
GPG_KEY=dein_gpg_code
GPG_PW='dein_passwort_hier_einfügen'

# credentials & server address of the ftp server (URL-Format)
TARGET='ftp://benutzername@serveradresse_oder_ip/backupverzeichniss/'
TARGET_PW='ftp_server_passwort'

# was wollen wir sichern? z.b. /var/www/ ?
SOURCE='/var/www/'

# oldest time frame for restoration, see duplicity man page, chapter TIME_FORMATS)
MAX_AGE=1M

# Number of full backups to keep. Used for the "purge-full" command.
# See duplicity man page, action "remove-all-but-n-full".
MAX_FULL_BACKUPS=2

# verbosity of output (9 for bug fixing)
VERBOSITY=4

# temporary file space. at least the size of the biggest file in backup
# for a successful restoration process.
TEMP_DIR=/tmp

# sets duplicity --time-separator option (since v0.4.4.RC2) to allow users
# to change the time separator from ':' to another character that will work
# on their system.  HINT: For Windows SMB shares, use --time-separator='_'.
# NOTE: '-' is not valid as it conflicts with date separator.
#DUPL_PARAMS="$DUPL_PARAMS --time-separator _ "

# activates duplicity --short-filenames option, when uploading to a file
# system that can't have filenames longer than 30 characters (e.g. Mac OS 8)
# or have problems with ':' as part of the filename (e.g. Microsoft Windows)
#DUPL_PARAMS="$DUPL_PARAMS --short-filenames "

# activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3)
# forces a full backup if last full backup reaches a specified age, for the
# format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS
#MAX_FULLBKP_AGE=1M
#DUPL_PARAMS="$DUPL_PARAMS --full-if-older-than $MAX_FULLBKP_AGE "

# set the size of backup chunks to VOLSIZE MB instead of the default (einzelne backup files). Bei mir ist 50 MB eingestellt. bei 5mb hätten wir zig tausende files am ftp!
# VOLSIZE must be number of MB's to set the volume size to.
#VOLSIZE=50     <---- bitte die grösse der files definieren in MB
#DUPL_PARAMS="$DUPL_PARAMS --volsize $VOLSIZE "

# more duplicity command line options can be added in the following way
# don't forget to leave a separating space char at the end
#DUPL_PARAMS="$DUPL_PARAMS --put_your_options_here "

----> verbindung zum ftpserver aufbauen und sicherungs verzeichniss was wir in der conf angegeben haben erstellen:

# lftp benutzername:passwort@ftp.deinedomain.de
# mkdir backupverzeichniss
#exit

dann hätten wir die conf datei angepasst und sind eigentlich fast schon fertig.

---> jetzt setzen wir berechtigungen auf den ftplicity files/confs:

# chmod 600 /root/.ftplicity/backup_profile/conf

---> wir können auch bestimmte verzecichnisse aus der sicherung ausschliessen. wir müssen lediglich eine /exclude datei in /root/.ftplicity/backup_profile/ erstellen und mit diesem inhalt füllen:

# vim /root/.ftplicity/backup_profile/exclude

Code:
/testordner  <--- ordner die ausgeschlossen werden
/testornder1 <--- ordner die ausgeschlossen werden

---> wir setzen korrekte rechte auf die datei exclude:

# chmod 600 /root/.ftplicity/backup_profile/exclude

so ist ftplicity für den gebrauch fertig eingestellt/installiert! um unsere sicherung zu erstellen, führen wir in der console einfach folgenden befehl aus:

# ftplicity backup_profile backup

per crontab können wir alle 12 stunden eine sicherung durchführen. die software erkennt ob ein full backup schon vorliegt oder nicht. zusätzlich sollen monatlich die backups aufgeräumt werden und alte backups gelöscht werden!

# crontab -e

---> diesen inhalt ins cron einfügen:

Code:
# run the (incremental) backup every 12 hours!
00 */12 * * * /usr/local/bin/ftplicity backup_profile backup

# do a full backup once per month & delete old backups
27 3 1 * * /usr/local/bin/ftplicity backup_profile full && /usr/local/bin/ftplicity backup_profile purge --force

bitte backup_profile immer mit dem profil_namen ersetzen den du am anfang auch erstellt hast! Wink Smile

mit dieser anleitung hätten wir eine wirklich mächtige verschlüsselte ftp backup sicherung die sich sehen lässt. das zurücksichern ist kinderleicht und lässt sich in der console durchführen:

das sind die möglichen ftplicity kommandos - bitte ftplicity --help in der console ausführen:

Code:
COMMANDS:
  usage:     get usage help text
  create:    creates a configuration profile
  backup:    incremental backup with pre/post script execution
  full:      force full backup
  incr:      incremental backup
  list:      list all files in backup
  verify:    list files changed since latest backup
  purge [--force]:
             shows outdated backup archives (older than $MAX_AGE)
             [--force, delete these files]
  purge-full [--force]:
             shows outdated backups (based on $MAX_FULL_BACKUPS,
             which defines the number of 'recent' full backups and
             associated incrementals to keep)
             [--force, delete these files]
  cleanup [--force]:
             shows broken backup archives (e.g. after unfinished run)
             [--force, delete these files]
  restore <target_path> [<age>]:
             restore the backup to <target_path>
             [as it was at <age>]
  fetch <file/folder> <target_path> [<age>]:
             restore single file/folder from backup
             [as it was at <age>]
  pre/post:  execute <profile>/pre or <profile>/post script
             (for debugging purposes)

hier ein paar beispiele:

Veraltete Backup-Archive anzeigen und löschen:
ftplicity purge backup_profile –force
Vollständiges Backup nach /tmp zurückspielen:
ftplicity backup_profile restore /tmp
Datei /var/www/testdatei nach /tmp restaurieren - stand vor 2 tagen:
ftplicity backup_profile fetch testdatei /tmp 2D
(siehe “man duplicity”, Abschnitt TIME FORMATS)


bei fragen stehe ich gerne zur verfügung! Wink

das backup system sichert bei mir umgerechnet 150GB täglich, und das mehrfach.

hier ein paar zusätzliche infos:

http://duplicity.nongnu.org

ausserdem können mehrere sicherungs profile erstellt werden und zu unterschiedlichen zeiten ausgeführt werden. man kann auch das gesamte "/" sichern wobei in der exculde datei dieses drinnen stehen MUSS:

Code:
/proc
/dev
/sys

jeder soll es an seine bedürfnisse anpassen. ich übernehme keine gewähr auf funktionalität! bitte viel kaffe holen und sorgfälltig alle eingaben prüfen.

duplicity sendet ausführliche backup beschreibung per email an den root user. bitte einfach in der datei /etc/aliases die umleitung bei dem root user auf deine mail einstellen.

root: deinemail@deinedomain.de

anschliessend das kommando:

# newaliases

in der konsole ausführen.

ganz wichtig!
bitte sichert eure duplicity/ftplicity konfiguration an einen sicheren ort ausserhalb des servers (vorallem den GPG-Key), da ansonsten eine rücksicherung nach einem systemausfall nicht mehr möglich wäre.

MENKI


RE: ispCP System Backup: HowTo - ZooL - 10-19-2008 02:19 AM

sehr nice...


RE: ispCP System Backup: HowTo - sun - 10-19-2008 02:27 AM

Das ist aber wirklich lieb!
Danke menki!


RE: ispCP System Backup: HowTo - Slowman - 10-19-2008 02:54 AM

Vielen Dank für den ausführlichen FAQ !


RE: ispCP System Backup: HowTo - menki - 10-19-2008 02:55 AM

danke.....

ich habe mir überlegt das so eine software unter ispcp eigentlich gar nicht so "schwer" zu implementieren wäre. wenn standard mässig duplicity und ftplicity installiert werden, muss nur noch gewährleistet werden dass die conf datei bzw. der cron (automatisierung der sicherung) bearbeitet werden kann. ich kenne ispcp als software schon ziemlich gut, trotzdem kann ich nicht vorab sagen ob und wie so eine mächtige sicherung als sicherung implementiert werden kann.

diese sicherungs -option eignet sich auch für das sichern von über 150 GB an daten (persönlich geprüft - bin mir sicher das terrabyte an daten auch kein problem sind). duplicity wird weiter entwickelt sowie ftplicity über sourceforge auch. zukunft bringt nur noch mehr stabilität und perfomance. das sichern ist nicht unbednigt auf einen ftp server notwendig. das kann auch ein verzeichniss sein, eine usb platte, eine nas, oder was ähnliches...es gibt sehr viele vorteile wenn man diese software einsetzt. für mich der grösste das keiner mit den daten irgendetwas anfangen kann da sie gpg mässig crypted sind! Wink Wink

MENKI


RE: ispCP System Backup: HowTo - Slowman - 10-19-2008 07:49 PM

Vielleicht könnte man ja dies mit in diesen Tread mit reinnehmen. Programme automatisch installieren Wink

Link: http://www.isp-control.net/forum/showthread.php?tid=3423


RE: ispCP System Backup: HowTo - ZooL - 10-19-2008 08:04 PM

slowman der sinn ist ein anderer an dem anderen thread liegen mehr sachen gästebücher,
foren, newssysteme, CMS systeme == Nuke, joomla, typo3 im vordergrund...

mfg


RE: ispCP System Backup: HowTo - Zothos - 10-19-2008 11:56 PM

ich hatte früher auch immer ftplicity im Einsatz, deswegen kleine anmerkung zur exclude.conf wobei ich nicht mehr genau weiß in welche file es nun gehört. Meine sah immer so aus

/
+ verzeichnis/welches/du/wirklich/haben/möchtest
+ anderes/verzeichnis

standardmässig wurde so erstmal alles excludiert und dann habe ich die einzelnen ornder welche ich wollte mit reingenommen.


RE: ispCP System Backup: HowTo - victor531 - 10-20-2008 12:37 AM

bitte, kann jemand auf english diese howto übersetzen, oder spanisch ?

danke


Victor


RE: ispCP System Backup: HowTo - rauschr - 10-20-2008 01:11 AM

you would get it over with to translate to English