Wozu lässt ein ordentlicher Admin jede Nacht inkrementelle Backups seines Servers per Cron-Job anfertigen? Damit er besser schlafen kann natürlich. Und, ach ja, damit sich im Notfall ein Backup einfach zurückspielen lässt. Wenn dann aber Duply, das Backup-Tool der Wahl, auf eine „Fetch“-Anweisung mit der Fehlermeldung „Command line error: Expected 2 args, got 3“ antwortet, folgt die große Irritation: Was nutzt ein Backup, wenn man es nicht zurückspielen kann?
Auf der Suche nach dem Grund allen Übels ist wie immer menschliches Versagen der erste Verdachts-Grund: Der Fehler hockt meist vor dem Bildschirm. Duply soll zwar als Frontend das Leben mit Duplicity, einem wegen seiner unzähligen Parameter schwer beherrschbaren Backup-Skript, leichter machen, aber wer wäre auf der Konsole nicht schon einmal an einem Tippfehler gescheitert? In diesem Fall stimmt aber alles:
duply ftpbkp fetch pfad/zur/datei bkpdatei 10D
ist eine korrekte Befehlszeile, um aus dem Backup „ftpbkp“ die Datei „pfad/zur/datei“ in der Version von vor zehn Tagen unter dem Namen „bkpdatei“ wiederherzustellen.
Also nicht der Mensch, sondern die Software ist Schuld. Eine Suche im Ubuntu-Bugtracker ergibt, dass Duply einen Fehler hat, der erst in der Programm-Version 1.5.10 gefixt wurde. In Ubuntu 12.04 LTS „Precise Pangolin“ ist und bleibt aber die ältere, fehlerhafte Duply-Version enthalten, und da dieses Langzeit-stabile Ubuntu aktuell auf einigen Servern Dienst tun dürfte, wird der eine oder andere Admin, der bisher gut geschlafen hat, vielleicht im Schadensfall auch noch von diesen stabilen Langzeit-Bug vor den Kopf gestoßen werden. Ganz schön blöd.
Mir ist der Duply-Bug übrigens auf einem Server aufgefallen, der noch Debian Oldstable („Squeeze“) ausführt. Aber auch das aktuelle stabile Debian („Wheezy“) und das aktuelle Ubuntu („Raring Ringtail“) haben veraltete Duply-Version.
Wann immer man in die Verlegenheit kommt, ein Backup zurückzuspielen, muss es schnell gehen. Eine schnelle Lösung besteht darin, sich das Installations-Paket für die aktuelle Duply-Version herunterzuladen, zum Beispiel im Repository von Debian sid, und gleich über die alte Version zu installieren:
# wget http://ftp.us.debian.org/debian/pool/main/d/duply/duply_1.5.10-1_all.deb
# dpkg -i duply_1.5.10-1_all.deb
Das funktioniert natürlich nur mit der Paketverwaltung von Debian, Ubuntu und Konsorten. Und siehe da, diesmal stellt der Fetch-Befehl die gewünschte Datei bereit und Duply meldet: „Finished state OK“. Gut so, weiterschlafen.