Noxy Geschrieben 30. Oktober 2003 Geschrieben 30. Oktober 2003 Hi Ich habe vor ein Shell Script zu schreiben und hab da ein kleines Problem: Ich hab ein Verzeichnis mit mehreren Benutzernamen, also z.B. /home/user1 /home/user2 Ich will jetzt die Daten in dem Verzeichnis so packen, dass ich am Ende gepackte Dateien in dem Format habe: user1.tgz user2.tgz Kann mir da jemand weiterhelfen? Ich hab schon probiert einfach ein ls zu machen, mir das Ergebnis in eine Datei zu schreiben aber dann weiss ich nicht mehr weiter. Wie kann ich die Datei wieder auslesen und die Variablen passend setzen. Oder gibts da eine ganz einfach Lösung? Noxy Zitieren
SystemError Geschrieben 30. Oktober 2003 Geschrieben 30. Oktober 2003 Hey, schau Dir das hier mal an: "for i in /home/* do echo $i done " Diese MiniSchleife echoed alle Dateien/Unterverzeichnisse unter "/home*". Jetzt musst Du nur noch das echo durch den tar Befehl Deiner Wahl ersetzen. In der Variablen $i (Kannst Du natürlich auch anders nennen) steht dann jeweils eine Datei/Verzeichniss aus /home... Bye SystemError Zitieren
Noxy Geschrieben 30. Oktober 2003 Autor Geschrieben 30. Oktober 2003 Vielen Dank, hat funktioniert. Noxy Zitieren
Noxy Geschrieben 4. November 2003 Autor Geschrieben 4. November 2003 Ich hab jetzt noch ein 2. Problem, bei dem mir vielleicht jemand helfen kann: Ich möchte nur die Datein vom letzen Tag in einer gepackten tar Datei haben, hat jemand eine Idee, wie das funktioniert? Heute ist der 04.11. also sollen alle Dateien vom 03.11 in der Datei sein. Thx Noxy Zitieren
Gast roaxius Geschrieben 4. November 2003 Geschrieben 4. November 2003 Unter welcher Shell möchtest du das denn machen? Korn? Bash? CSH? Zitieren
nic_power Geschrieben 4. November 2003 Geschrieben 4. November 2003 Hallo, Bei dem oben geposteten Skript handelt es sich um ein bash/sh Skript. Um Dateien mit einem bestimmten Datum zu suchen (und zu finden) bietet sich der Befehlt "find" an. Nach welchem Kriterium suchst Du denn, neu erzeugten Dateien, letztes Zugriffsdatum, letztes Modifikationsdatum? Da gibt es eine Menge Kombinationen. Nic Zitieren
Noxy Geschrieben 4. November 2003 Autor Geschrieben 4. November 2003 Also das ganze soll am Besten als bash/sh Script laufen und es sollen alle Dateien sein, die am Vortag erzeugt worden sind. Kann man das nicht ganz einfach erschlagen? Ich hätte nicht gedacht, dass es irgendwie kompliziert ist. Zitieren
nic_power Geschrieben 4. November 2003 Geschrieben 4. November 2003 Hallo, so kompliziert ist das auch gar nicht: find . -daystart -mtime -1 Listet alle Files auf, die gestern modifiziert wurden. Problematisch dabei ist, dass auch "." gefunden wird. Bei einer Weiterverarbeitung mit "tar" werden aber Unterverzeichnisse mit "getarred". Aus dem Grund solltest Du noch mittels "-type f" z.B. nur reguläre Dateien verarbeiten (oder eben nicht ab "." suchen; hängt vom Anwendungszweck ab; Verzeichnisnamen sind aber generell ein Problem): find /home/user1 -daystart -mtime -1 -type f -exec tar cvf /tmp/user1.tar {} \; Wenn Du das ganze in einer Schleife laufen läßt (über Verzeichnis und Archiv-Namen) solltest Du Dein Skript eigentlich haben Nic Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.