Hallo 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/
Archiv Erzeugen
Du kannst doch diese Kommandos aus einem Python-Skript heraus aufrufen ...Laines hat geschrieben:Das sind ja linux comands, ich wollte das mit python syntax machen...
Guckst du hier: http://docs.python.org/lib/module-subprocess.html
Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
Nimm lieber das tarfile Modul. Die Examples in der Dokumentation sollten eigentlich reichen.
Nimm lieber das tarfile Modul. Die Examples in der Dokumentation sollten eigentlich reichen.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
Ich habe auch bisher mit dem tarfile Modul gearbeitet. Könnte mir jemand den Code Posten ich bekomme das genau so wie ich es will leider nicht selbst hin...
Bisher schaffe ich es leider nur das er Absolute Pfade im Archiv sichert, also auch /home/user/stuff/
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Wieso? Wenn sauber gemacht ist das imho eine saubere Lösungname hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Windows ... das hat weder ein "tar" Kommando. Außerdem ist unter Windows nicht notwendigerweise jedes Programm auch im $PATH.veers hat geschrieben:Wieso?name hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
Und auch unter Linux/Unix muss man sich dann mit leidigen Kompatibilitätsproblemen rumschlagen. GNUs gibts nämlich auch nicht überall ...
Wenn es ein Modul gibt, dann sollte man das auch nutzen.
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Unter windows könnte man ja eine tar.exe mitliefernlunar hat geschrieben:Windows ... das hat weder ein "tar" Kommando. Außerdem ist unter Windows nicht notwendigerweise jedes Programm auch im $PATH.veers hat geschrieben:Wieso?name hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
Und auch unter Linux/Unix muss man sich dann mit leidigen Kompatibilitätsproblemen rumschlagen. GNUs gibts nämlich auch nicht überall ...
Wenn es ein Modul gibt, dann sollte man das auch nutzen.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ist die Frage warum man das machen sollte, wenn der Tar-Code schon vom Python-Interpreter mitgebracht wird.veers hat geschrieben:Unter windows könnte man ja eine tar.exe mitliefern
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Es ist nie eine saubere Lösung auf externe Kommandos angewiesen zu sein. Überhaupt wenns eh built-in ist.veers hat geschrieben:Wieso? Wenn sauber gemacht ist das imho eine saubere Lösungname hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, so darf man es nicht sehen. Zum Beispiel pings absetzen würde ich auch eher über das System-Ping als selbst die Pakete zu schicken, da man für solche Kommunkation root-Rechte braucht und darum ping auch setsuid ist. Ich würde es eher vermeiden wollen, dass jemand mein Python-Programm mit root-Rechten starten müsste.name hat geschrieben:Es ist nie eine saubere Lösung auf externe Kommandos angewiesen zu sein.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
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
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
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...name hat geschrieben:Es ist nie eine saubere Lösung auf externe Kommandos angewiesen zu sein. Überhaupt wenns eh built-in ist.veers hat geschrieben:Wieso? Wenn sauber gemacht ist das imho eine saubere Lösungname hat geschrieben:Ich würde dir abraten die Commands einfach aus dem Script auszurufen.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
@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.
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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
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.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...
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 (former) Modvoice
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
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 gutLeonidas hat geschrieben: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.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...
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
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann