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
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
Noxy Geschrieben 30. Oktober 2003 Autor Geschrieben 30. Oktober 2003 Vielen Dank, hat funktioniert. Noxy
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
Gast roaxius Geschrieben 4. November 2003 Geschrieben 4. November 2003 Unter welcher Shell möchtest du das denn machen? Korn? Bash? CSH?
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
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.
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden