Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln! Willst du auch an der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:
 

ftplicity: inkrementelle Backups sicher ablegen

ACHTUNG: Die in diesem Artikel besprochenen Versionen sowohl von ftplicity als auch duplicity sind bereits veraltet. Die grundsätzlichen Erklärungen sind zwar weiterhin valid, aber die Syntax oder Konfigurationsparameter könnten sich geändert haben. Bitte verwendet den Such-Tag “duplicity” bzw. den Such-Tag “ftplicity” und die Kommentare, um aktuelle Informationen zu finden.

Nachdem ich durch einen Beitrag von Matthias wieder mal erinnert wurde, dass nicht Jeder Backups macht bzw. sie aktuell hält, dachte ich, dass ich mal kurz einen Teil meiner Backuplösung vorstelle:

Vorteile

In einem (schon älterem) Artikel der c’t (13/2006) wurde ein Tool vorgestellt mit dem man eine einfache und sichere Backup-Strategie für z.B. Root-Server fahren kann. Das Tool heißt ftplicity und ist im Prinzip nur ein Wrapper für das umfangreichere duplicity. Wie der Name schon sagt, kann möchte ftplicity nur via FTP kommunizieren, denn dies ist laut c’t (und auch meiner Erfahrung nach) der häufigste und simpelste Weg einen Backupspace zu erreichen.

Nun beseitigt ftplicity bzw. das dahinterliegende duplicity gleich mehrere Probleme, die bei dem “plain old Dir-to-FTP-sync” enstehen:

  • Übertragungsqualität: FTP tendiert bei längeren durchgehenden Übertragungen (= eine große Datei) zu Fehleranfälligkeit und der ganze Upload muss noch einmal begonnen werden oder (was viel schlimmer ist) die Backupdatei ist zerstört/ fehlerhaft und lässt sich im Ernstfall nicht mehr richtig wiederherstellen.

    Lösung: kleine Dateien übertragen durch Erstellung von Volumes

  • Vertraulichkeit: Wer einen zweiten Server mit guter Anbindung hat braucht sich um diesen Punkt nicht zu sorgen, aber alle anderen, die entweder etwas Platz bei einem Bekannten in Anspruch nehmen oder von Ihrem Provider einen gewissen Platz an FTP-Space zur Verfügung gestellt bekommen (z.B. Strato, Hetzner) müssen sich schon fragen, ob denn der jeweilige Serveradmin nicht nachts mal aus Interesse sich durch das Mailbackup wühlt.

    Lösung: Verschlüsselung der Daten mittels GPG

  • Authentizität: Das oben genannte Problem wirft ebenfalls die Frage auf, wie weit man den so gesicherten Daten noch vertrauen kann, wenn “Unbekannte” auf die Daten Zugriff hatten. Nichts wäre wohl schlimmer, als dass man sich mit dem Restore auch gleich eine passwd-Datei mit neuen SSH-Usern runterzieht (nette Idee, btw).

    Lösung: Die Signatur der Daten mittels GPG, welche auch beim Restore geprüft werden.

  • Datenvolumen: Je mehr Daten man gesichert hat, desto leichter findet ein Restore statt. Allerdings nimmt damit auch das Übertragungsvolumen zu, was erstens mehr Backupzeit kostet und zweitens in den meisten Hosterverträgen auch begrenzt ist.

    Lösung: Inkrementelle Backups (nur geänderte Daten) unter Nutzung der erprobten rsync-Bibliothek

Diese Probleme werden also von der hier vorgestellten Lösung bereits vermieden. Aber – richtig eingerichtet – kann es noch mehr:

Weitere Vorteile

  • Einzelrestore: Wer kennt das nicht: Schnell mal die Config vom Mailserver bearbeitet und statt die alte Zeile auszukommentieren löscht man sie… und siehe da, rien ne va plus! Der Mailserver startet nicht mehr und man kann sich partout nicht mehr an die besagt Zeile erinnern. Wohl dem, der ein Backup von den Configdateien hat und noch wohler dem, der nicht das ganze Backup wiederherstellen muss, um die Einzeldatei zu erhalten.

    Lösung: ftplicity besitzt einen Befehl, mit dem man Einzeldateien oder -ordner an einen beliebigen Ort wiederherstellen kann

  • Versionierung: Manchmal wäre es schön, wenn man eine Datei nicht nur in dem Zustand des nächtlichen Backups erhielte, sondern sich auch mal die Config ansehen könnte, wie sie vor zwei Wochen war.

    Lösung: Ein Argument des oben erwähnten Befehls ermöglicht es, ein Datum oder einen Zeitraum für die wiederherzustellende Datei anzugeben.

So, als ich diese Punkte damals alle las, war für mich klar: Das will ich haben! Wenn es DIR jetzt auch so geht, dann lies jetzt weiter, denn ein kleines Howto folgt. Es basiert auf Debian (zuerst Sarge, nun Etch), aber sollte wohl auch auf anderen (Linux-) Systemen laufen, da duplicity in Python geschrieben ist und ftplicity nur ein Shellscript ist.

Installation

So, wie fangen wir an? Wir ziehen uns das duplicity-Paket mittels apt oder aptitude.

apt-get install duplicity

Wer z.B. noch kein gnupg (= GPG) installiert hat, wird sich freuen, dass die Abhängigkeiten vernünftig definiert sind und es somit gleich mit geladen wird.

Alternativ kann man sich auch das tgz von der Projektseite herunterziehen. Ich bevorzuge aber aus Sicherheitsgründen die Debian-Pakete.

Dann laden wir uns das File mit ftplicity von dem heise-Server.

wget ftp://ftp.heise.de/pub/ct/listings/0613-216.tar.gz

Auspacken…

tar -xzf 0613-216.tar.gz

…und in das Verzeichnis wechseln, …

cd ftplicity-1.1.1/

… und einfach mal die Datei ausführen:

./ftplicity

Diese Ausgabe sollte erscheinen:

Offenbar benutzen Sie ftplicity zum ersten Mal. Eine vorlaeufige
Konfigurationsdatei wurde unter /root/.ftplicity/conf erstellt.
Sie muessen dort die Daten des verwendeten GPG-Schluessels sowie
die Zugangsdaten fuer den FTP-Server eintragen, bevor Sie mit dem
Backup fortfahren koennen.

WICHTIG:
Sichern Sie das komplette Konfigurationsverzeichnis nach dem
ersten erfolgreichen Backup unbedingt auf einen vertrauenswuerdi-
gen externen Rechner und schuetzen Sie es vor unbefugtem Zugriff.

Konfiguration

So, das ist zwar schön, aber nicht wirklich sinnvoll. Als guter Admin möchte man seine Configdateien ja alle unter /etc wissen. Also machen wir ein wenig Kosmetik:

Wir verändern den Ort, wo ftplicity nach der config sucht:

edi ftplicity

Zur leichteren Trennung der verschiedenen Dateien, hänge ich auch noch Endungen an.

CONFDIR="/etc/ftplicity"
CONF="$CONFDIR/main.conf"
PRE="$CONFDIR/pre.sh"
POST="$CONFDIR/post.sh"
EXCLUDE="$CONFDIR/exclude.conf"
KEYFILE="$CONFDIR/gpg.key"

F10 – Speichern und beenden.

Dann das besagte Config-Dir erstellen:

mkdir /etc/ftplicity

Damit ftplicity im Pfad zu finden ist kopieren wir es nach /usr/sbin – für mich ist dies der richtige Ort, denn nur der root soll dieses Script mit der Konfiguration ausführen dürfen.

cp ftplicity /usr/sbin/

und damit wir u.U. das Skript schnell bearbeiten können, sollte dies nochmal nötig sein, erstellen wir noch einen Link ins Confdir (optional):

ln -s /usr/sbin/ftplicity /etc/ftplicity/ftplicity

Danach entweder einfach nochmal

ftplicity

aufrufen oder die Musterconfig aus dem ersten Aufruf an die richtige Stelle kopieren.

cp ~/.ftplicity/conf /etc/ftplicity/main.conf

Bevor wir nun die Config bearbeiten, benötigen wir zunächst einen GPG-Key, der zum Signieren und Verschlüsseln dient.

gpg --gen-key

Die Voreinstellungen sind alle sinnvoll und können mit <Enter> bestätigt werden, aber den Namen, Mailadresse und Kommentar sollte man so sinnvoll ausfüllen, dass man den Key in der GPG-Keyliste dann auch wiederfindet.

Das Passwort sollte natürlich Sicherheitsansprüchen genügen (Klein- und Großbuchstaben + Sonderzeichen + Zahlen).

Es kann sein ist sehr wahrscheinlich, dass bei Key-Erstellung folgendes kommt:

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 282 more bytes)

Wie auch immer das genau funktioniert, nutzt GPG die Systemvorgänge als Zufallsinput. Also mach z.B. folgendes in einer zweiten Shell:

while /bin/true; do cat /var/log/syslog &gt; ~/temp.txt; sleep 1; done;

Dies erzeugt eine Kopie des Syslogs (= große Datei) in deinem Homeverzeichnis und das zwar endlos, solange du es nicht via Ctrl+C abbrichst bzw. die Sitzung schließt. Damit erzeugst Du genügend Festplattenaktivität. Du kannst natürlich auch andere Dinge tun oder einfach warten – je nach Systemaktivität könnte dies aber eine Weile dauern.

Wie auch immer Du es erreichst, es erscheint dann:

gpg: key 1B6B8FAF marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u
pub 1024D/1B6B8FAF 2007-08-17
Key fingerprint = 2B2E DA54 4E2C 08B4 677D 4EC9 1AC5 3DE5 1B6B 8FAF
uid Stevie (Backup-GPG-Key) <admin@domain.tld>
sub 2048g/C4BCAD3E 2007-08-17

wobei uns nur diese Zeile interessiert,

pub 1024D/1B6B8FAF 2007-08-17

denn 1B6B8FAF wäre in diesem Fall die Key-ID, die wir in die ftplicity-Config eintragen müssen. Das merken wir uns also schon mal. Dann können wir jetzt die Config-Datei von ftplicity bearbeiten.

edi /etc/ftplicity/main.conf

Meine Datei sieht so aus:

# Daten fuer GPG-Schluessel
GPG_KEY=<em>KEYID</em>
GPG_PW='_MEINPW_'
 
# Zugangsdaten fuer FTP-Server (URL-Format)
# subdir ist natürlich optional, aber strengstens empfohlen!
ZIEL='ftp://username@ftphost.tld/subdir/'
ZIEL_PW='_FTPPASSWORT_'
 
# Basisverzeichnis fuers Backup
QUELLE='/'
 
# aeltester Wiederherstellungszeitpunkt
# Linux-übliche Abkürzungen, ich habe vorerst 6 Monate eingestellt,
# da ich noch genügend freien Platz habe
# - je nach Speicherplatz und Backuphäufigkeit zu entscheiden
HOECHSTALTER=6M 
 
# Ausfuehrlichkeit der Bildschirmausgaben (9 fuer Fehlersuche)
# WARNUNG: "9" erstellt Logs/Ausgaben in der Größenordnung von 200MB (je nach Dateianzahl)
VERBOSITY=3 
 
# Verzeichnis fuer temporaere Dateien. Beim Restore muss dort
# mindestens Patz fuer die groesste Datei im Backup sein
TEMP_DIR=/tmp

So, eigentlich wären wir nun fertig. ABER eben nur eigentlich. Bei der Erstellung des Backups würde duplicity auf einige Probleme stoßen, somit sind einige Pfade vom Backup auszuschließen in der exclude.conf:

edi /etc/ftplicity/exclude.conf
+ /backups/mysql/latest
/backups/**
/var/run/**
/var/tmp/**
/tmp/**
/dev/**
/sys/**
/proc/**
/floppy/**
/cdrom/**
/var/lib/mysql/**

Der Selektor “**” steht für alle Dateien und Unterverzeichnisse in diesem Ordner. Der Selektor “+” vor dem Ordner gibt an, dass es explizit gesichert werden soll, auch wenn es eigentlich in einem Exclude-Dir liegt (siehe 1. & 2. Zeile). Wie man sieht, schließe ich die MYSQL-Dateien aus. Während der Server läuft, kann man die Dateien auch nicht sichern. Entweder man beendet den Mysql-Server während des Backups oder man dumpt die DBs. Das Script zum Dumpen der MYSQL-Tabellen habe ich hier kurz vorgestellt.

Wer noch andere vorbereitende Schritte zur Sicherung vornehmen möchte, wie z.B. das o.g. MySQL-Dump-Script oder das Beenden des MySQL-Servers, kann diese in der pre.sh einstellen. Nachbereitende Schritte, z.B. Start von Mysql, kann ist der post.sh erfolgen. (Beide Dateien müssen erst erstellt werden, sofern sie benötigt werden.)

Absichern

Zur Sicherheit sichern wir nun noch das gesamte Confdir, damit uns niemand das Key-PW auslesen kann:

chown -R root:root /etc/ftplicity
chmod -R o-rwx /etc/ftplicity

So, fertig. Nun ist alles konfiguriert und bereit zum Test. Auf manchen FTP-Servern hat duplicity Probleme zu starten, wenn der Ordner leer ist (wie es beim ersten Mal der Fall sein wird). Wo das der Fall ist, genügt es, eine leere Datei in dem Verzeichnis zu platzieren.

Test

Nun wird es ernst. Die Verwendungshinweise erhält man nun, in dem man einfach

ftplicity

aufruft und es wäre sinnlos alles zu wiederholen. Nur ein paar Hinweise:

Beim “fetch” einzelner Dateien darf man keinen führenden Slash und muss eine Zieldatei angeben:

ftplicity fetch etc/passwd  /root/restoretest/passwd now

Lädt aus dem Backup die letzte Version der Datei passwd, die aus /etc gesichert wurde und speichert sie nach /root/restoretest/passwd.

Bevor man sich nun darauf verlässt, dass alles funktioniert, sollte man mittels

ftplicity full

ein Vollbackup machen und es mittels

ftplicity restore /root/restoretest/

zurückspielen und untersuchen. Wenn alles geklappt hat, kann man sich beruhigt auf die Schulter klopfen.

Cron

So, nun ist alles bereit für den Regelbetrieb. Damit man von nun an keine Kopfschmerzen mehr mit dem Backup hat, richten wir noch cronjobs ein, die wöchentlich ein komplettes Backup und an den anderen Tagen eine inkrementelle Sicherung erstellen. Richtig eingerichtet sollte der Cron-Daemon die Ausgabe des Cronjobs via E-Mail an den root senden. Als root führen wir also aus:

crontab -e

und tragen dort ein:

# FTP-Backup ... jede Nacht um 2:05 Uhr (außer Montags)
5 2 * * 2-7 /usr/sbin/ftplicity cleanup --force ; /usr/sbin/ftplicity backup
 
# FTP-Backup ... um 1:30 Uhr jeden Montag
30 1 * * 1 /usr/sbin/ftplicity cleanup --force; /usr/sbin/ftplicity full ; /usr/sbin/ftplicity purge --force

Zusätzlich wird so dafür gesorgt, dass vor jedem Backup das Verzeichnis von fehlerhaften Backups bereinigt wird und Montags nach dem vollständigen Backup veraltete Dateien ebenfalls gelöscht werden. (Anmerkung: Es werden nur veraltete Dateien gelöscht, wenn es eine neuere Version gibt, die innerhalb des konfigurierten Höchstalters liegt. Es gibt also immer mindestens eine Version der Datei … irgendwie sinnvoll ;-) )

Backup des Backups

Nach dem ersten Lauf existiert ein gpg.key im Config-Dir. Der muss unbedingt die Rechte 400 oder 600 haben und sollte an einem sicheren Platz fernab vom Server gesichert werden. Nur mit diesem Key (und dem PW) ist eine Wiederherstellung des Backups möglich, sollte der Keyring nach einem Totalabsturz nicht mehr verfügbar sein. Sicherlich kann es auch nicht schaden, die Configs zu sichern. So hat man gleich die perfekte Voraussetzung, um das ganze erneut aufzusetzen.

Das war’s, we are done. Wir sind nun sowas von auf der sicheren Seite… wow!

Fragen? Hinweise? Optimierungen? –> Bitte hinterlasse einen Kommentar!

  • Taucha

    Moin.

    Und wie sieht es mit der sicheren Kommunikation zum FTP Server selbst aus?
    ftplicity hat ja leider keine SSL Unterstützung.

    hast du da schon nen Weg gefunden? TLSWRAP bringt mich leider nicht weiter.

    Taucha

  • http://www.weareroot.de stevie

    Hallo Taucha!

    Ich habe die Kommunikation mit dem FTP-Server bewusst ignoriert, weil ich auf dem von mir genutzten Backup-Server (Strato) 1. keine SSL-Verbindung nutzen kann und 2. ich auf dem Backupserver eh nur noch verschlüsselte und damit für andere nutzlose Daten liegen habe.

    Nichtsdestotrotz wäre es sicherlich für alle anderen auch interessant, wenn Du eine Möglichkeit findest und sie hier postest.

    Ich werde, sobald Zeit da ist, mal in der Doku von duplicity nachsehen. Das kann ja sogar via SSH usw. kommunizieren.

    So long,

    Stevie

  • http://www.weareroot.de stevie

    NACHTRAG:

    Auf serversupportforum.de gibt es einen Patch für alle, die Probleme mit unterbrochenen Backups haben. Dies ist bei mir nämlich auch andauernd passiert und seit dem Patch nicht ein einziges Mal.

    Vielen Dank an “Cheef-Daniel” dafür!

  • Taucha

    Hey.

    Ich habe im Hetzner Forum dazu auch schon einen beitrag eröffnet.
    Aktuell wollte jmd Kontakt mit den Entwicklern von Duplicity aufnehmen und diese Erweiterung vorschlagen.
    Mal schauen was bei rauskommt.

  • Taucha

    Achso,

    was bringt mir mein verschlüsseltes Backup, wenn jmd meine Nutzerdaten und das Passwort für den FTP mitlesen kann?
    So könnte er die Daten löschen, dann bringt mir mein sicheres Backup auch nichts mehr ;-)

    Ob das nun so einfach ist, die Verbindung zu sniffen, muss jetzt nicht diskutiert werden ;)

    taucha

  • http://www.weareroot.de stevie

    @Taucha:
    Ja, das ist der einzige Punkt, bei dem SSL dann doch Sinn macht, trotz der Backup-Form. Aber 1. bin ich mir ziemlich sicher, dass mein Strato-Backup-Server kein SSL unterstützt (warum eigentlich nicht?) und 2. kann der “Hacker” eben wirklich nur destruktiv tätig sein, denn er kann mit Daten ja nichts anfangen und kommt auch nicht auf den Quell-Server rauf.

    Es ist nicht so, dass ich das Problem wegdiskutieren möchte, da aber der Server nur innerhalb des Stratonetzes erreichbar ist, ist die Problematik bei mir etwas eingegrenzt.

    Natürlich würde mir das im “Ernstfall” auch nichts helfen.

    PS: Sehr sinnvoller Beitrag, dies in den Original-Quellcode einfließen zu lassen. Man ist immer so darauf bedacht, sein eigenes System zum laufen zu bringen, dass man vergisst, dass Open Source auch heißt, die Ergebnisse zu teilen.
    PPS: Kannst Du mir den Link von Hetzner hier auch mal posten?

  • http://www.weareroot.de stevie

    UPDATE:
    Im CHANGELOG von duplicity für Version 0.4.3 (siehe RC9) steht, dass nun eine andere FTP-Lib verwendet wird, die auch Dinge wie retrys als Startparameter usw. unterstützt.

    Bei Gelegenheit werde ich mir die neue Version mal ansehen und schauen, ob das FTP-SSL nun auch einfach in ftplicity zu portieren wäre.

  • Taucha

    aber sicher. hier ist der link (aber kommst nur in das forum, wenn du dort nen Server hast :-/ )
    http://forum.hetzner.de/wbb2/thread.php?threadid=9515
    Wenn die Übergabe der Accountdaten nicht in URL Form, sondern einzeln anzugeben ist, würde das ja helfen.
    Mit “tslwrap” und “ncftp” mache ich das auch so. Wenn es neues im Hetzner Forum gibt, werde ich es hier mit anbringen. (Für den Fall das du nicht reinkommst)

    Taucha

  • http://www.weareroot.de stevie

    @Taucha:
    Danke für den Link, ich habe trotz Nicht-Kundenstatus bei Hetzner mich einfach mal versucht zu registrieren… mal sehen.

    Was würde es denn helfen, wenn die Accountdaten nicht in der URL stehen? Ich meine bei der unverschlüsselten Übertragung könnte man das Passwort so oder so mitsniffen. Allerdings ist mir im o.g. duplicity-Changelog eine Variable “FTP_PASSWORT” (o.ä.) untergekommen. Vielleicht ist das was du suchst?!

  • Taucha

    ich poste einfach mal das, was ich im Hetzner-Forum geschrieben hatte (u.a.).

    Ich hatte halt schon “tlswrap” im Einsatz, da ich mit ncftp und tlswrap gute Erfahrung gemacht habe.

    Aber bei ncftp muss man ja

    ncftp -u user@ssl-remote-host:port -P 127.0.0.1

    angeben.

    Wenn man diesen “Usernamen” allerdings versucht bei ftplicity einzufügen, bricht das Programm weg, da in einer Zeile schon 2 “@” auftauchen.

    :-/

  • Taucha

    hm. mist :)

    wollte alles in “code” setzen. Aber ich denk du wirst verstehen, was ich sagen wollte ;-)

  • http://www.weareroot.de stevie

    Dafür ist ja auch “blockquote” da! ;)

    Habs gefixt…

    PS: Für Comments wo es kein bq gibt, musst du um den code-block noch ein pre-block setzen.

  • Taucha

    *aufschreib*
    *info in Feed reinbingen*
    *link zu diesem post speichern*
    *drucken*
    *auswendiglern*
    :)

  • http://www.weareroot.de stevie

    Hmmm, sind die <ironie>-tags nun nur nicht sichtbar oder wirklich nicht da?!

  • http://www.weareroot.de chris

    Ein Backup auf eine FAT32- oder NTFS-Partition schlägt fehl, weil duplicity die Backupdateien mit Doppelpunkten im Namen abspeichert, die in MS-Dateisystemen bekannterweise nicht erlaubt sind.

    Abhilfe schafft eine Änderung des ftplicity-Scripts in den Zeilen 80/81:
    $DUPLICITY --encrypt-key $GPG_KEY
    --sign-key $GPG_KEY --short-filenames --verbosity $VERBOSITY

    Der Parameter --short-filenames macht die Dateinamen gleich zu mehreren Dateisystemen kompatibel – leider sind nicht alle so freizügig wie ext3 & Co.

  • Daniel

    Hallo,

    ich wollte ftplicity auf einem neuen Server mit der neuen duplicity Version verwenden, aber diese frisst meine Portangabe mit user@server:port nicht. Kann ich diesen irgendwie evtl durch abändern des Scripts einstellen? Außerdem wäre für mich auch ein FTPoverSSL interessant, geht das evtl auch?

    Danke

  • http://www.weareroot.de stevie

    @Daniel:
    1. Was genau ist Dein Problem mit dem Port? Der Ziel-FTP läuft auf einem anderen Port? Ich habe dazu in der Doku leider nichts finden können – alle FTP-Beispiele sind ohne Hinweis auf einen Port.

    2. Wie lautet Deine aktuelle Versionsnummer von duplicity? Laut changelog (link s.o.) ist bereit RC1 von 0.4.4 raus, der wohl ein krassen Fehler beim FTP-Backend löst.

    https://savannah.nongnu.org/bugs/?21123
    duplicity 0.4.3 ftpBackend did not find backup sets when there was
    more than 20 files in directory.

    3. Die SSL-Geschichte kam ja hier in den Comments ja schon auf. Ich habe noch das Debian-Paket und damit “nur” Version 0.4.2 installiert – damit soll FTP-SSL wohl ziemlich unmöglich sein. Seit 0.4.3 ist aber, wie bereits oben gesagt, eine neue FTP-Lib dabei. Genaueres kann ich derzeit aber noch nicht sagen.

  • Daniel

    Hallo stevie,

    vielen Dank für Deine Antwort. Mein Problem ist folgendes. Ich habe meinen ftp-Server nicht auf Port 21 am laufen, damit dieser nicht mit Loginversuchen überschwemmt wird. Ich habe einen Server mit duplicity 0.4.2, da klappt auch alles durch angabe der Portnummer server:port. Auf einem anderen Server habe ich 0.4.4RC2 laufen. Da die neue Version aber ncftp als ftp Wrapper einsetzt, klappt die Angebe der Portnummer nicht mehr. Als Antwort kommt immer “No Route to host”. In der Syntax habe ich gelesen, dass ncftp ein “-P ‘port’” und kein “:port” erwartet, aber das kann ich unter ftplicity leider in der Form nicht angeben, da ein ‘ den Befehl vorzeitig beendet und ohne gehts auch nicht.
    Kann ich dieses Problem irgendwie umgehen?
    Vielen, vielen Dank

    Daniel

  • Pingback: WE ARE ROOT

  • http://www.weareroot.de stevie

    Hallo Daniel,

    bitte schau oben den Trackback an, dort findest Du einen Patch.

    Sobald ich Zeit habe, werde ich mich der SSL/TLS-Geschichte nochmal widmen…

    HTH,
    stevie

  • Pingback: WE ARE ROOT

  • ovizii

    hi.

    wie schon in deinem anderen thread besprochen, und angeregt, setzen wir die config diskussion hier fort.

    da du in deinem script die pfade komplett geändert hast, hab ic halle meine config dateien, sprich exclude, pre post und gpg.key umkopiert und an deine namen angepasst. jetzt den ersten versuch mit ftplicity full gestartet, melde mich dann in 5h oder so :-)

    aber jetzt zum crontab. ic hhatte dmals alles nach CT anleitung eingerichtet, und deine crontabs, sehen etwas anders aus.

    meine waren: # 0 4 * * * /usr/local/bin/ftplicity backup #daily ftplicity backup to FTP_Backupspace
    # 0 6 1 * * /usr/local/bin/ftplicity full && /usr/local/bin/ftplicity purge --force #monthly full backup + deleting of old records

    ich hätte gerne monatlic hein full backup und täglich ne inkrementelle sicherung.
    hab gesehen du hast da ein paar andere parameter mit übergeben, wie cleanup.

    ist meine crontab-config so ok? bin grad extrem faul die hilfe dazu zu lesen, udn ja ich weiß was cleanup macht, aber wo sollte ich das sinnvollerweise bei meinem crontab einbauen?

  • ovizii

    hi.

    wie schon in deinem anderen thread besprochen, und angeregt, setzen wir die config diskussion hier fort.

    da du in deinem script die pfade komplett geändert hast, hab ic halle meine config dateien, sprich exclude, pre post und gpg.key umkopiert und an deine namen angepasst. jetzt den ersten versuch mit ftplicity full gestartet, melde mich dann in 5h oder so :-)

    aber jetzt zum crontab. ic hhatte dmals alles nach CT anleitung eingerichtet, und deine crontabs, sehen etwas anders aus.

    meine waren: # 0 4 * * * /usr/local/bin/ftplicity backup #daily ftplicity backup to FTP_Backupspace
    # 0 6 1 * * /usr/local/bin/ftplicity full && /usr/local/bin/ftplicity purge --force #monthly full backup + deleting of old records

    ich hätte gerne monatlic hein full backup und täglich ne inkrementelle sicherung.
    hab gesehen du hast da ein paar andere parameter mit übergeben, wie cleanup.

    ist meine crontab-config so ok? bin grad extrem faul die hilfe dazu zu lesen, udn ja ich weiß was cleanup macht, aber wo sollte ich das sinnvollerweise bei meinem crontab einbauen?

  • ovizii

    so, jetzt hab ic hauch einen der zahllosen threads gefudnen in denen ich mein problem geschildert habe: http://serversupportforum.de/forum/perl-php-python-bash/9463-problem-mit-duplicity-ftplicity-3.html

    scheint so als hätte damals jemand die lösung gepostet aber ich hab den thread anscheinend nicht abonniert. wäre das dort geschilderte problem geläst? oder brauche ich eventuell immer noch diesen patch?

    ich meine ich werde es nach dem ersten inkrementellen backup ja auch herausfinden aber trotzdem hier mal die frage :-)

  • ovizii

    so, jetzt hab ic hauch einen der zahllosen threads gefudnen in denen ich mein problem geschildert habe: http://serversupportforum.de/forum/perl-php-python-bash/9463-problem-mit-duplicity-ftplicity-3.html

    scheint so als hätte damals jemand die lösung gepostet aber ich hab den thread anscheinend nicht abonniert. wäre das dort geschilderte problem geläst? oder brauche ich eventuell immer noch diesen patch?

    ich meine ich werde es nach dem ersten inkrementellen backup ja auch herausfinden aber trotzdem hier mal die frage :-)

  • ovizii

    so, leider war der erste full backup test nicht erfolgreich :-(

    /usr/local/bin# ftplicity full
    NcFTP version is 3.2.0
    Reading globbing filelist /etc/ftplicity/exclude.conf
    Last full backup date: Thu Jan 1 01:00:00 1970
    Traceback (most recent call last):
    File "/usr/bin/duplicity", line 421, in ?
    if __name__ == "__main__": main()
    File "/usr/bin/duplicity", line 410, in main
    if action == "full": full_backup(col_stats)
    File "/usr/bin/duplicity", line 150, in full_backup
    bytes_written = write_multivol("full", tarblock_iter, globals.backend)
    File "/usr/bin/duplicity", line 83, in write_multivol
    globals.gpg_profile,globals.volsize)
    File "/usr/lib/python2.4/site-packages/duplicity/gpg.py", line 198, in GPGWriteFile
    try: data = block_iter.next(bytes_to_go).data
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 407, in next
    result = self.process(self.input_iter.next(), size)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 487, in process
    data, last_block = self.get_data_block(fp, size - 512)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 508, in get_data_block
    buf = fp.read(read_size)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 338, in read
    buf = self.infile.read(length)
    IOError: [Errno 22] Invalid argument

    ok, werde mir die error ausgabe mal daheim in Ruhe durchlesen, bin grad in nem cafe, schlecht für die konzentration.

  • ovizii

    so, leider war der erste full backup test nicht erfolgreich :-(

    /usr/local/bin# ftplicity full
    NcFTP version is 3.2.0
    Reading globbing filelist /etc/ftplicity/exclude.conf
    Last full backup date: Thu Jan 1 01:00:00 1970
    Traceback (most recent call last):
    File "/usr/bin/duplicity", line 421, in ?
    if __name__ == "__main__": main()
    File "/usr/bin/duplicity", line 410, in main
    if action == "full": full_backup(col_stats)
    File "/usr/bin/duplicity", line 150, in full_backup
    bytes_written = write_multivol("full", tarblock_iter, globals.backend)
    File "/usr/bin/duplicity", line 83, in write_multivol
    globals.gpg_profile,globals.volsize)
    File "/usr/lib/python2.4/site-packages/duplicity/gpg.py", line 198, in GPGWriteFile
    try: data = block_iter.next(bytes_to_go).data
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 407, in next
    result = self.process(self.input_iter.next(), size)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 487, in process
    data, last_block = self.get_data_block(fp, size - 512)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 508, in get_data_block
    buf = fp.read(read_size)
    File "/usr/lib/python2.4/site-packages/duplicity/diffdir.py", line 338, in read
    buf = self.infile.read(length)
    IOError: [Errno 22] Invalid argument

    ok, werde mir die error ausgabe mal daheim in Ruhe durchlesen, bin grad in nem cafe, schlecht für die konzentration.

  • Daniel

    Hallo,

    ich wollte nochmal nachfragen, ob es mittlerweile eine Möglichkeit gibt die Daten über SSH laufen zu lassen? Ich möchte einen Server eines Kunden bei mir sichern lassen und möchte ungern, dass evtl jemand meine dyndns-Adresse umbiegt und so an die wenn auch verschlüsselten Daten kommt (Server-Authentifizierung). Wenn nicht würde mir für das Passwort ftp/ssl auch reichen.

    Grüße

    Daniel

  • Daniel

    Hallo,

    ich wollte nochmal nachfragen, ob es mittlerweile eine Möglichkeit gibt die Daten über SSH laufen zu lassen? Ich möchte einen Server eines Kunden bei mir sichern lassen und möchte ungern, dass evtl jemand meine dyndns-Adresse umbiegt und so an die wenn auch verschlüsselten Daten kommt (Server-Authentifizierung). Wenn nicht würde mir für das Passwort ftp/ssl auch reichen.

    Grüße

    Daniel

  • http://www.weareroot.de stevie

    @all:
    Es ist von einem Einzelentwickler ftplicity weiterentwickelt und auf sourceforge migriert worden. Ich werde mir dies demnächst mal ansehen und dann darüber einen Beitrag verfassen.
    Erste Infos hier@sourcforge

    @ovizii:
    IOError: [Errno 22] Invalid argument
    Das klingt schon ziemlich seltsam und hart. Ich habe dazu leider spontan auch keine Idee und würde Dich dafür in Englisch an die Mailingliste von duplicity verweisen.

    @Daniel:
    Sorry, ich habe bisher noch nicht die SSH-Variante in Angriff genommen. Bei einem Test ging die FTPSSL-Sache aber problemlos. In der aktuellen duplicityversion ist der FTP-Patch ja bereits drin.

  • http://www.weareroot.de stevie

    @all:
    Es ist von einem Einzelentwickler ftplicity weiterentwickelt und auf sourceforge migriert worden. Ich werde mir dies demnächst mal ansehen und dann darüber einen Beitrag verfassen.
    Erste Infos hier@sourcforge

    @ovizii:
    IOError: [Errno 22] Invalid argument
    Das klingt schon ziemlich seltsam und hart. Ich habe dazu leider spontan auch keine Idee und würde Dich dafür in Englisch an die Mailingliste von duplicity verweisen.

    @Daniel:
    Sorry, ich habe bisher noch nicht die SSH-Variante in Angriff genommen. Bei einem Test ging die FTPSSL-Sache aber problemlos. In der aktuellen duplicityversion ist der FTP-Patch ja bereits drin.