Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3390
|
Hallo iBlack. iBlack schrieb: Hallo Vej, hab es hinbekommen, dass die Logdatei befüllt wird (endlich!)
Das ist super 👍 . Verrätst du mir wie du das geschafft hast (für den/die Nächste/n mit diesem Problem)?
Wärst du so nett und wirfst ein Blick drauf?
Gab es da wieder die gleiche Fehlermeldung? Normalerweise steht dann nämlich der Hashvergleich im Log. Das ist hier nicht der Fall. Stattdessen hast du das hier:
...
DUPLICITY: DEBUG 1
DUPLICITY: . Rückverfolgung des vorangegangenen Fehlers: Traceback (innermost last):
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 365, in inner_retry
DUPLICITY: . return fn(self, *args)
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 567, in get
DUPLICITY: . "from backend") % util.ufn(local_path.name))
DUPLICITY: . BackendException: Datei /tmp/duplicity-WHRxn8-tempdir/mktemp-E_erhs-495 konnte nicht lokal gefunden werden, nach Erhalt vom Hintergrundprogramm.
DUPLICITY: .
DUPLICITY: WARNING 1
DUPLICITY: . Versuch 1 fehlgeschlagen. BackendException: Datei /tmp/duplicity-WHRxn8-tempdir/mktemp-E_erhs-495 konnte nicht lokal gefunden werden, nach Erhalt vom Hintergrundprogramm.
DUPLICITY: DEBUG 1
DUPLICITY: . Rückverfolgung des vorangegangenen Fehlers: Traceback (innermost last):
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 365, in inner_retry
DUPLICITY: . return fn(self, *args)
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 563, in get
DUPLICITY: . self.backend._get(remote_filename, local_path)
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backends/giobackend.py", line 146, in _get
DUPLICITY: . self.__copy_file(source_file, target_file)
DUPLICITY: . File "/usr/lib/python2.7/dist-packages/duplicity/backends/giobackend.py", line 119, in __copy_file
DUPLICITY: . None, self.__copy_progress, None)
DUPLICITY: . Error: g-io-error-quark: Fehler beim Öffnen der Datei »/tmp/duplicity-WHRxn8-tempdir/mktemp-E_erhs-495«: Datei oder Verzeichnis nicht gefunden (1)
DUPLICITY: .
DUPLICITY: ERROR 52 get 'duplicity-full.20170418T073458Z.vol446.difftar.gpg' '/tmp/duplicity-WHRxn8-tempdir/mktemp-E_erhs-495'
DUPLICITY: . Nach 2 Versuchen wird aufgegeben. Error: g-io-error-quark: Fehler beim Öffnen der Datei »/tmp/duplicity-WHRxn8-tempdir/mktemp-E_erhs-495«: Datei oder Verzeichnis nicht gefunden (1)
...
DUPLICITY: WARNING 1
DUPLICITY: . Aufräumen des temporären Verzeichnisses /tmp/duplicity-WHRxn8-tempdir fehlgeschlagen - das ist wahrscheinlich ein Fehler.
Hier berichtet Déjà Dup, dass eine von ihm während der Wiederherstellung angelegte Datei nicht mehr existiert. Da wäre zunächst einmal auszuschließen, dass das temporäre Verzeichnis des Déjà Dup ausführenden Rechners bei der Wiederherstellung nicht voll läuft! Viele Grüße Vej
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: Zähle...
|
Hallo Vej, hab DejaDup komplett entfernt mit dem bekannten purge Befehl!
Hab danach die Schreibrechte des /tmp Verzeichnisses angepasst und dann hat das funktioniert! Der Rechner der DejaDup ausführt? Also mein Lokaler Rechner? Hmm. Komisch!
Gab es da wieder die gleiche Fehlermeldung? Normalerweise steht dann nämlich der Hashvergleich im Log. Das ist hier nicht der Fall. Stattdessen hast du das hier:
Ja es kam die gleiche Fehlermeldung! Auch dass eine bestimmte vol Datei nicht gefunden wurde!
Ich hab dann aber auf dem Sicherungsserver geschaut und die Datei existiert sehr wohl und ist ungefähr gleich groß wie alle anderen!
Deswegen versteh ich das alles nicht.. Die Datei existiert, DejaDup sagt aber dass es die Datei nicht finden kann. Zumal dem es bei jede Fehlermeldung eine andere Datei ist die "nicht gefunden wird"...
Ich weiß echt nicht mehr weiter ☹ Danke dir bisher! Grüße, iBlack
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: 19
|
Hallo Vej, kannst du mir sagen was ich noch machen oder versuchen kann?
Die Daten brauch ich eigentlich echt dringend... steckt auch viel Arbeit dahinter ☹...! Warum sagt DejaDup hier "die Datei existierte nicht mehr", wenn die Datei doch auf dem Server liegt und mit den Berechtigungen und Eigentumsrechten 1:1 mit den restlichen übereinstimmt? Grüße, iBlack
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3390
|
Hallo iBlack. iBlack schrieb: Warum sagt DejaDup hier "die Datei existierte nicht mehr", wenn die Datei doch auf dem Server liegt und mit den Berechtigungen und Eigentumsrechten 1:1 mit den restlichen übereinstimmt?
Mir fallen da so viele mögliche Ursachen für ein, dass der Rest des Sonntagvormittags nicht ausreichen würde die alle zu erläutern 😉. Hast du mal versucht die gesamte Sicherung (also das neuste Backup mit full im Namen und alle neueren Backups mit inc im Namen) auf den Clientrechner zu kopieren (nimm besser rsync zum kopieren!) und dann von dort wiederherzustellen? Dadurch kannst du eine Menge Probleme mit dem Dateisystem und Servertimeouts umgehen. Ansonsten kannst du wegen der Probleme mit dem Hintergrunddateien im /temp-Ordner (deines Clients!) versuchen den auf ein anderen Platte zu legen. Dazu erstellst du dort eine neue Partition mit ext2, ext3 oder ext4 und bindest diese als /tmp ein. Viele Grüße Vej
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: 19
|
Hallo Vej, habe jetzt mal alle Dateien auf meinen PC kopiert (rsync) und die Sicherung von der 2 TB Platte aus laufen lassen. Findet alles, bringt dann aber schlussendlich diese Fehlermeldung...
Ungültige Daten – SHA1-Hash stimmt nicht für die Datei:
duplicity-full.20170720T092412Z.vol1509.difftar.gpg
Erstellter Hash: 9e4155f1a3ca138395d0b3bebac0ce20621a19f9
Manifest-Hashcode: 196ba8cc4a278ca7ef7e4ff20482da04d6ce833e Ich weiß langsam echt nicht mehr weiter ._. Grüße, iBlack
|
Vej
Moderator, Supporter
Anmeldungsdatum: 7. März 2013
Beiträge: 3390
|
Hallo iBlack. iBlack schrieb: Findet alles,
Das ist schomal sehr gut 👍 ! bringt dann aber schlussendlich diese Fehlermeldung...
Ungültige Daten – SHA1-Hash stimmt nicht für die Datei:
duplicity-full.20170720T092412Z.vol1509.difftar.gpg
Erstellter Hash: 9e4155f1a3ca138395d0b3bebac0ce20621a19f9
Manifest-Hashcode: 196ba8cc4a278ca7ef7e4ff20482da04d6ce833e
Das ist jetzt endlich der Hashvergleich zu dem Fehler, den du schon einmal bekommen hattest: iBlack schrieb: Ungültige Daten – SHA1-Hash stimmt nicht für die Datei:
duplicity-full.20170720T092412Z.vol1509.difftar.gpg
Die Datei ist also kaputt. Allerdings hast du ja jetzt einen lokalen Pfad und weißt, welche Datei du überspringen musst. Deshalb solltest du theoretisch das Skript verwenden können, wenn du: Die Datei duplicity-full.20170720T092412Z.vol1509.difftar.gpg aus der Kopie auf deinem PC löschst Dann erst die übrigen difftars entschlüsselst: gpg --multifile --decrypt duplicity-*.*.*.difftar.gpg Bei FROM den Pfad deiner lokalen Backupkopie (auf deinem PC) einträgst Bei TO_TMP einen leeren Zielordner einträgst Die Zeilen 28 bis 30 einkommentierst (indem du # und das dahinterstehende Leerzeichen (!) entfernst) Das Skript speicherst, ausführbar machst und ausführst
Selbstverständlich sind dann die paar Dateien aus dem 1509. Volume verloren. Bei Problemen damit bitte gerne Nachfragen. Viel Erfolg! Vej PS.: Das Skript braucht Stunden (bei deiner Anzahl an Volumes vielleicht auch Tage). Also eine Weile "laufen lassen".
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: 19
|
Hallo Vej, ich danke dir erst mal tausendfach für deine Geduld und eine super Hilfe!
So, wegen dem Skript! 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 | #!/usr/bin/env python
import os
FROM = '/home/user/von_hier'
TO_TMP = '/home/user/nach_hier'
TO_MULTI = TO_TMP + '/multivol_snapshot'
TO_SNAP = TO_TMP + '/snapshot'
def do(stuff):
print stuff
os.system(stuff)
def m2s(path):
assert path.startswith(TO_MULTI), 'It must be a multivol path'
tmp = path.replace(TO_MULTI, TO_SNAP, 1)
if tmp.endswith('/'):
tmp = tmp[:-1]
return tmp
def main():
# restore broken dejadup / duplicity fullbackup without manifest
# Step One
# untar
# os.chdir(TO_TMP)
# do("for t in \"" + FROM + "/\"*.difftar; do echo $t; "
# "tar xvfi \"$t\"; done;")
# Step Two
# join multipart files
for (path, dirs, files) in os.walk(TO_MULTI):
print path
if len(dirs) == 0:
# add leading zeros for more than 10 parts
for f in files:
os.rename(os.path.join(path, f),os.path.join(path, str(f).zfill(10)))
# we need to combine all these elements
do("cat \"" + path + "\"/* > \"" + m2s(path) + "\"")
#do("rm *")
else:
do("mkdir -p \"" + m2s(path) + "\"")
if __name__ == '__main__':
main()
|
Kannst du mir hier bitte noch Hilfestellung geben? Ich kann langsam nicht mehr und will das endlich alles hinter mir haben... FROM = '/home/user/von_hier' = mein Pfad, wo meine Backupdateien liegen TO_TMP = '/home/user/nach_hier'= mein Pfad, wo die Rückgesicherten Dateien nachher liegen sollen def main():
# restore broken dejadup / duplicity fullbackup without manifest
# Step One
# untar
# os.chdir(TO_TMP)
# do("for t in \"" + FROM + "/\"*.difftar; do echo $t; "
# "tar xvfi \"$t\"; done;")
# Step Two
# join multipart files Diesen Teil kann ich wieder "ein kommentieren :p" wenn ich die Dateien noch nicht entpackt habe - korrekt? Muss ich noch andere Dinge in dem Skript beachten?
Danke dir nochmals! Grüße, iBlack
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: 19
|
Hallo Vej nochmal, mein Skript sieht jetzt so aus:
#!/usr/bin/env python
import os
FROM = '/media/phk/66ece11c-9dd6-4708-8b7c-546e0a9dedf3/Backup/'
TO_TMP = '/media/phk/66ece11c-9dd6-4708-8b7c-546e0a9dedf3/Sicherung/'
TO_MULTI = TO_TMP + '/multivol_snapshot'
TO_SNAP = TO_TMP + '/snapshot'
def do(stuff):
print stuff
os.system(stuff)
def m2s(path):
assert path.startswith(TO_MULTI), 'It must be a multivol path'
tmp = path.replace(TO_MULTI, TO_SNAP, 1)
if tmp.endswith('/'):
tmp = tmp[:-1]
return tmp
def main():
# restore broken dejadup / duplicity fullbackup without manifest
# Step One
# untar
# os.chdir(TO_TMP)
# do("for t in \"" + FROM + "/\"*.difftar; do echo $t; "
# "tar xvfi \"$t\"; done;")
# Step Two
# join multipart files
for (path, dirs, files) in os.walk(TO_MULTI):
print path
if len(dirs) == 0:
# add leading zeros for more than 10 parts
for f in files:
os.rename(os.path.join(path, f),os.path.join(path, str(f).zfill(10)))
# we need to combine all these elements
do("cat \"" + path + "\"/* > \"" + m2s(path) + "\"")
#do("rm *")
else:
do("mkdir -p \"" + m2s(path) + "\"")
if __name__ == '__main__':
main() Muss ich darauf achten, dass ich nur ein komplettes Backup (mit allen vol) auf dem Rechner hab? Oder ist das egal?
Ich hab mir jetzt alle Dateien vom 201705*-heute gezogen ... Grüße, iBlack
|
iBlack
(Themenstarter)
Anmeldungsdatum: 24. Juli 2015
Beiträge: 19
|
Hallo Vej, :p hat schlussendlich funktioniert! Komischerweise wurde sogar die Fehlerhafte Datei mit Hash-Fehler wiederhergestellt ☺ Danke dir tausendfach für deine Hilfe! Grüße, iBlack
|