[gelöst] Unison-Archivdateien vom Backup ausschließen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Ulidor
Beiträge: 557
Registriert: 19.12.2004 21:54:40
Wohnort: Bielefeld

[gelöst] Unison-Archivdateien vom Backup ausschließen

Beitrag von Ulidor » 12.02.2012 12:33:14

Hallo,

beim Herunterfahren erzeugt unsison automatisch ein Teil-Backup auf einen USB-Stick. Darin ist auch das Verzeichnis der Konfigurationsdateien von unison enthalten. Aber leider auch dessen Archivdateien, die im Backup unnötig Platz wegnehmen. Da die sich während des Laufs von unison ändern, kommt es zu einer Fehlermeldung und unison beendet sich mit einem Fehler-Code, auch wenn ansonsten alles einwandfrei durchläuft. Mein Backup-Skript bricht dann mit einer Fehlermeldung ab. Wie kann ich die Archivdateien vom Backup ausschließen?

.unison sieht z.Zt. so aus:

Code: Alles auswählen

# ls -l /root/00/system/partback/.unison/
insgesamt 6408
-rw------- 1 root root 3267217 Feb 12 04:35 ar4d2ba0bf30ac8f3d54d510e50e1ab2d2
-rw------- 1 root root 3273665 Feb 12 04:35 are135ee780beed9b15d2ff41f887b4f03
-rw------- 1 root root     759 Feb 12 04:35 fp4d2ba0bf30ac8f3d54d510e50e1ab2d2
-rw------- 1 root root    1191 Feb 12 04:35 fpe135ee780beed9b15d2ff41f887b4f03
-rw------- 1 root root     396 Feb  8 22:04 partbackup.prf
-rw------- 1 root root     397 Feb  8 22:04 partbackup.prf~
Ich dachte da an eine ignore-Zeile, die per Regex die Archivdateien ausschließt. Das müsste dann etwa so lauten: "alle Dateinamen mit 34 Zeichen (oder kann die Länge variieren?), die nur aus Kleinbuchstaben und Ziffern bestehen." Das bekomme ich mit meinen bescheidenen Regex-Kenntnissen nicht hin. Könnte mir da jemand helfen?

Oder geht es auch noch einfacher?
Zuletzt geändert von Ulidor am 14.02.2012 17:52:45, insgesamt 1-mal geändert.
Was erhält man, wenn man einen Windows-PC abschaltet? – Ausgemachten Blödsinn.

PapaToo
Beiträge: 72
Registriert: 08.03.2009 19:44:44

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von PapaToo » 12.02.2012 13:00:51

Nur so eine Vermutung:
Das eine .unison Verzeichnis komplett ausschliessen geht nicht?
Wenn sich die .prf nicht so häufig ändern, würd ich sie separat irgendowhin kopieren.

Benutzeravatar
Ulidor
Beiträge: 557
Registriert: 19.12.2004 21:54:40
Wohnort: Bielefeld

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Ulidor » 12.02.2012 13:36:21

PapaToo hat geschrieben:Nur so eine Vermutung:
Das eine .unison Verzeichnis komplett ausschliessen geht nicht?
Wenn sich die .prf nicht so häufig ändern, würd ich sie separat irgendowhin kopieren.
Ja, das wäre auch eine Lösung. Ich könnte in meinem Skript vor dem Aufruf von unison die prf-Dateien woanders hin kopieren und /root/00/system/partback/.unison/ ausschließen. Ich werde es auch erstmal so machen. Danke für den Tipp.

Eleganter wäre es natürlich mit einer ignore-Zeile. Ich dachte, vielleicht schüttelt jemand eine passende Regex einfach so aus dem Ärmel. :wink:
Was erhält man, wenn man einen Windows-PC abschaltet? – Ausgemachten Blödsinn.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Liffi » 12.02.2012 13:50:57

Einfach regex. Wobei ich natürlich nicht weiß, ob die so von unison verstanden wird. Perl versteht sie :-).

Code: Alles auswählen

[a-z0-9]{34}

Benutzeravatar
Ulidor
Beiträge: 557
Registriert: 19.12.2004 21:54:40
Wohnort: Bielefeld

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Ulidor » 12.02.2012 15:31:05

Danke! :)
Es klappt aber irgendwie nicht.
Die Zeile sieht so aus:

Code: Alles auswählen

ignore = Regex [a-z0-9]{34}
Vielleicht liegt es daran, was im unison-manual.txt zu Regex steht:

Code: Alles auswählen

...
The collating sequences and character classes of full
       Posix regexps are not currently supported
...
Note that regular expression patterns are "anchored": they must match
   the whole path, not just a substring of the path.
...
Das steht so im unison-manual.txt von Version 2.27.57. Der aktuellen Version von Wheezy, 2.40.63, fehlt unison-manual.txt.
Was erhält man, wenn man einen Windows-PC abschaltet? – Ausgemachten Blödsinn.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Liffi » 12.02.2012 15:51:16

Ok. Wie wäre es mit:

Code: Alles auswählen

ignore = Path .unison/ar*
Oder wesentlich wilder aussehend aber besser treffend:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/]ar[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Ich hoffe, ich habe mich dabei nicht verzählt :-)

Benutzeravatar
Ulidor
Beiträge: 557
Registriert: 19.12.2004 21:54:40
Wohnort: Bielefeld

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Ulidor » 13.02.2012 21:28:51

Hallo Liffi, danke, es klappt! Hab gleich die zweite Variante genommen. Super, wie man so was aus dem Ärmel schütteln kann! :)

Allerdings blendet die Zeile ja nicht alle Archivdateien aus, was wieder zu der besagen Fehlermeldung führte. Deshalb hatte ich es mal so versucht:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Also ohne "ar" und dafür 34 mal "[0-9a-f]". Das haute aber nicht hin (wie gesagt, ich habe keine Ahnung von Regex).

Darum mache ich es aktuell so:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/]ar[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
ignore = Regex (.*[/])?\.unison[/]fp[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Das trifft aber auch nur auf die aktuellen Archivdateien zu. Ich möchte gerne generell alle ausschließen. Und das geht mit Sicherheit mit nur einer Zeile. :wink:
Was erhält man, wenn man einen Windows-PC abschaltet? – Ausgemachten Blödsinn.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Liffi » 13.02.2012 22:40:25

Ulidor hat geschrieben:Hallo Liffi, danke, es klappt! Hab gleich die zweite Variante genommen. Super, wie man so was aus dem Ärmel schütteln kann! :)

Allerdings blendet die Zeile ja nicht alle Archivdateien aus, was wieder zu der besagen Fehlermeldung führte. Deshalb hatte ich es mal so versucht:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Also ohne "ar" und dafür 34 mal "[0-9a-f]". Das haute aber nicht hin (wie gesagt, ich habe keine Ahnung von Regex).
Das hat nicht hingehauen, weil er dann einfach direkt nach dem unison Ordner 34 Mal eine Hexzahl erwartet hat. Da im Normalfall ja zum Beispiel ein "ar" im Weg war hat er nicht gematcht.
Darum mache ich es aktuell so:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/]ar[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
ignore = Regex (.*[/])?\.unison[/]fp[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Das trifft aber auch nur auf die aktuellen Archivdateien zu. Ich möchte gerne generell alle ausschließen. Und das geht mit Sicherheit mit nur einer Zeile. :wink:
Das hier könnte funktionieren, ist aber eigentlich zu gierig (könnte ein wenig Performance kosten, sollte aber nicht allzu merkbar sein).

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/].*[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
EDIT::
besser ist dann eigentlich:

Code: Alles auswählen

ignore = Regex (.*[/])?\.unison[/][a-z][a-z][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]
Das funktioniert solange dieser Zweibuchstabenprefix immer aus Kleinbuchstaben besteht. Ansonsten muss man es halt ein bisschen anpassen :-)

Benutzeravatar
Ulidor
Beiträge: 557
Registriert: 19.12.2004 21:54:40
Wohnort: Bielefeld

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Ulidor » 14.02.2012 17:50:46

Ja, so haut es hin! :D

Es waren zwei "[0-9a-f]" zu viel, aber die habe ich einfach rausgenommen.

Ich wusste gar nicht, dass sich die Archivdateinamen aus zwei Buchstaben gefolgt von 32 (bzw. 16) Hexzahlen zusammen setzten. Wieder was gelernt. :)

Vielen Dank!
Was erhält man, wenn man einen Windows-PC abschaltet? – Ausgemachten Blödsinn.

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Unison-Archivdateien vom Backup ausschließen

Beitrag von Liffi » 15.02.2012 09:21:56

Ulidor hat geschrieben: Ich wusste gar nicht, dass sich die Archivdateinamen aus zwei Buchstaben gefolgt von 32 (bzw. 16) Hexzahlen zusammen setzten. Wieder was gelernt. :)
Nunja, gewusst habe ich das auch nicht, es sieht halt so aus.

Antworten