Archiv Erzeugen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Laines
User
Beiträge: 39
Registriert: Donnerstag 15. Mai 2008, 18:42

Sonntag 31. August 2008, 21:43

Hier mal was ich bisher habe:

Code: Alles auswählen

			dateien = os.listdir(UserOrdner)
			for i in dateien:
				ZuAdden = UserOrdner + "/" + i
				tar.add(ZuAdden)
			tar.close()
# UserOrdner ist der Absolute Pfad bis zu dem Ordner der gesichert werden soll
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sonntag 31. August 2008, 22:12

name hat geschrieben:
veers hat geschrieben:
name hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
Wieso? Wenn sauber gemacht ist das imho eine saubere Lösung ;)
Es ist nie eine saubere Lösung auf externe Kommandos angewiesen zu sein. Überhaupt wenns eh built-in ist.
Aha. Dann ist git also eine ganz unsaubere Lösung. Genauso wie tar, ssh und der gcc sowie eigentlich Unix selbst? Ich seh das anders...
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
BlackJack

Sonntag 31. August 2008, 23:35

@veers: Das ``git`` unschön ist sieht man, wenn man das mal in einer nicht typischen Unix-Umgebung braucht.

Wie ``tar``, ``ssh`` und ``gcc`` da jetzt ins Bild passen sollten, erschliesst sich mir nur bedingt. Der ``gcc`` ruft ja eigentlich nur externe Programme auf, die er sehr genau kennt, weil sie zum gleichen Programmpaket gehören. Und "Unix selbst", ja die meisten Shell-Skripte sind ziemlich unsauber. Es werden bestimmte Features von Shell und aufgerufenden Programmen erwartet, zum Beispiel im Linuxbereich, dass die ``bash`` verwendet wird und die GNU-Varianten der üblichen Programme installiert sind. Das Dateinamen mit Leerzeichen mit sehr vielen Skripten Probleme bereiten ist ja nun auch legendär.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Sonntag 31. August 2008, 23:39

veers hat geschrieben:Aha. Dann ist git also eine ganz unsaubere Lösung. Genauso wie tar, ssh und der gcc sowie eigentlich Unix selbst? Ich seh das anders...
Tar nutzt bis auf Kompression (sofern gewollt) keine externen Befehle, ssh nutzt auch wohl bis auf sh keine externen Sachen, gcc nutzt häuptsächlich die binutils, die auch von GNU kommen. Ich glaube es ging darum, dass es wenig elegant ist auf externe Programme zuzugreifen, die noch dazu je nach GNU/BSD/POSIX-Userland verschieden funktionieren, wenn die Stdlib so etwas bereits mitbringt.

git ist da etwas anders, aber auch das wird immer mehr in C neugeschrieben. Der Perl-Teil... ok, Perl ist Shellskript mit sed und awk als Endosymbionten :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sonntag 31. August 2008, 23:53

Leonidas hat geschrieben:
veers hat geschrieben:Aha. Dann ist git also eine ganz unsaubere Lösung. Genauso wie tar, ssh und der gcc sowie eigentlich Unix selbst? Ich seh das anders...
Ich glaube es ging darum, dass es wenig elegant ist auf externe Programme zuzugreifen, die noch dazu je nach GNU/BSD/POSIX-Userland verschieden funktionieren, wenn die Stdlib so etwas bereits mitbringt.
Klar, in dem Falle lässt es sich vermutlich mit der Tarlib wirklich schöner lösen. Mir ging es eher ums "Es ist nie eine saubere Lösung auf externe Kommandos angewiesen zu sein". Ich halte Argumente und Pipes sehr wohl als valides Interface zwischen Programmen. Es mag nicht so ein tolles Buzzword sein wie SOAP (welches ja seine eigenen Probleme hat) oder REST es erfüllt seinen Zweck aber relativ gut ;)

Blackjack,
Ich frage mich da ob das git unschön macht. Git wurde für Unix artige Systeme entwickelt und nicht für Systeme die nicht in der Lage sind neue Prozesse effizient zu starten.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Laines
User
Beiträge: 39
Registriert: Donnerstag 15. Mai 2008, 18:42

Dienstag 2. September 2008, 16:26

Ich finde es ja toll das mein Thread zu einer diskussion angeregt hat, könntet ihr mir trotzdem etwas unter die Arme greifen? :lol:

Ich fasse mal zusammen:
ich habe Einen Ordner den ich gerne in ein tar.gz Archiv sichern würde. In ihm sind Dateien und Unterordner.

Beispiel:
/home/user/stuff/
Unter stuff währen Jetzt weitere Unterordner und Dateien. Ich möchte es so haben, das alles ab dem Ordner stuff im Archiv ist. Die Verzeichnisstruktur ab Stuff soll aber weiterhin im Archiv vorhanden sein. Bisher schaffe ich es leider nur das er Absolute Pfade im Archiv sichert, also auch /home/user/stuff/

Code: Alles auswählen

            dateien = os.listdir(UserOrdner)
            for i in dateien:
                ZuAdden = UserOrdner + "/" + i
                tar.add(ZuAdden)
            tar.close()
# UserOrdner ist der Absolute Pfad bis zu dem Ordner der gesichert werden soll
Antworten