Zum Inhalt springen

Shell Script Problem


Noxy

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...