Shellskript zum löschen von Dateien

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Ticha, 09.09.2010.

  1. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    Hallo Leute,

    ich habe eine regelmäßige Dateiflut auf einem Server. Dort werden jeden Tag Dateien erstllt. Bisher muss man da immer per Hand aufräumen, aber das ist auf die Dauer auch nervig.

    Jetzt würde ich gerne ei Skript schreiben, dass in regelmäßigen Abständen die Dateien löscht, die ein gewisses Alter erreicht haben.

    Im Grunde ist das ja nicht so schwer. Das Problem ist nur, dass ich nicht über den Dateinamen gehen kann, da dieser variabel ist. Ich würde gerne das original erstellungs oder Änderungsdatum benutzen. Ich habe jetzt schon Stundenlang gegoogelt, aber ich finde einfach nicht, wie ich auf das Datum einer Datei zugreifen kann :(

    kann mir einer helfen?

    Greetz
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Die man-page von 'find' kann Dir das beantworten. Vielleicht hilft Dir auch der Befehl 'logrotate' weiter.
     
  4. #3 Gast123, 09.09.2010
    Gast123

    Gast123 Guest

    So vielleicht?

    Code:
    $ ls --full-time | awk '{print $6 " " $7 " " $8}'
     
  5. #4 underliner, 09.09.2010
    underliner

    underliner Jungspund

    Dabei seit:
    25.08.2010
    Beiträge:
    16
    Zustimmungen:
    0
    Ort:
    Verden - Lower Saxony
    Hallo Ticha,

    so löscht du z.B. alle Scripte im Verz. /daten/scripte die nicht aus 2010 sind:

    find /daten/scripte -type f -iname "*.sh" -not -newermt 20100101 -exec rm {} \;

    Gruss underliner
     
  6. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    cool underliner danke, jetzt muss ich mal versuchen das Ding zu verstehen :D
     
  7. #6 underliner, 09.09.2010
    underliner

    underliner Jungspund

    Dabei seit:
    25.08.2010
    Beiträge:
    16
    Zustimmungen:
    0
    Ort:
    Verden - Lower Saxony
    Hallo Ticha,

    verstehen ? Eigentlich ganz einfach:

    find /daten/scripte -type f -iname "*.sh" -not -newermt 20100101 -exec rm {} \;

    suche im Verz.
    -type f = nach Dateien ( files)
    -name "...." = mit dem Namen (-iname ohne Groß/Kleinschreibung)
    -not -newermt = die nicht neuer sind als mtime
    20100101 = 2010 Jan 01
    -exec = mit den gefundenen Dateien folgenden Befehl ausführen
    rm = löschen
    {} = Platzhalter für gefundene Dateien
    \; = Endezeichen für find - es kommt nichts mehr.

    Ich habe mir deine Frage noch einmal durchgelesen, und da du bestimmt nicht jeden Tag das Datum in deinem Script von Hand ändern willst, sollte man vielleicht doch mit -mtime arbeiten.

    find /daten/scripte -type f -iname "*.sh" -mtime +0 -exec echo {} \;

    erstmal mit echo testen und dann echo durch rm ersetzen.


    Gruß underliner
     
  8. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    habe ich das in den man pages richtig gelesen, dass ich mit "mtime +x" dem x die Tage angebe, die das Skript zurückgehen soll?also 24.03.2010 mit x=3 wird 21.03.2010?
     
  9. #8 saeckereier, 11.09.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Hi underliner,

    willkommen im Forum. Schöner Einstand dein Post.

    Zum Thema: Sinnvollerweise probierst du erstmal mit echo rm -v {}\; aus, dann siehst du, welche Befehle ausgeführt werden würden. Dann kann man das auch einfach mal so ausprobieren. Im übrigen würde ich mal die Forensuche bemühen, diese Frage wurde hier schon mindestens dreimal gestellt und ausführlich beantwortet.
    -mtime 3 sollte passen für drei Tage.
     
  10. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    aus dem Kopf: Unglücklich, da dann nur die Dateien gefunden werden, die _zum Zeipunkt_ des find-Durchlaufes exakt 3 Tage alt sind. Ich würde noch ein + einsetzen...
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. Ticha

    Ticha Linux Missionar

    Dabei seit:
    21.07.2006
    Beiträge:
    814
    Zustimmungen:
    0
    cool danke :)
     
  13. #11 saeckereier, 12.09.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    :-) Ja klar fehlt da das Plus, Ticha hatte es ja schon geschrieben, da hab ich mich wohl vertippt
     
Thema:

Shellskript zum löschen von Dateien

Die Seite wird geladen...

Shellskript zum löschen von Dateien - Ähnliche Themen

  1. Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln

    Wie einen Pfad zur Vereinfachung mittels Shellskript wechseln: Ich muß häufiger in 2 bestimmte Verzeichnisse auf 3. oder 4. Ebene wechseln. Um nicht permanent cd /ordnerA/ordnerB/ordnerC... usw eingeben zu...
  2. Shellskript per PHP aufrufen funktioniert nicht

    Shellskript per PHP aufrufen funktioniert nicht: Hallo zusammen, ihr seid meine letze Hoffnung, seit heute morgen versuche ich ein shellskript zum laufen zu bekommen. Folgende...
  3. Problem bei Shellskript

    Problem bei Shellskript: Hey Leute, ich soll ein Shellskript schreiben welches einen Verzeichnis, welches ich als Paramter angebe, rekursiv nach der Textdatei mit den...
  4. Reengineering Shellskripte

    Reengineering Shellskripte: Hallo Community, ich habe ein Problem wo ich leider keine Lösung finde. Es gibt eine Liste von Shell-skripten die in unterschiedlichen...
  5. Servicemenu ruft Shellskript nicht auf

    Servicemenu ruft Shellskript nicht auf: Hallo zusammen, ich habe gerade ein Shellskript gebastelt das Bilder verkleinert und in einen neuen Ordner packt. Per Konsole funktioniert es...