Daten löschen die älter als X Tage sind

  • Hallo,


    möchte via Cron auf meinem Qnap in regelmäßigen Intervall Dateien löschen die älter als 7 Tage sind.


    Wenn ich u.g. Befehl ausgebe. Erscheint als Ausgabe die Befehloptionsliste des Find - Befehls.


    Was mache ich falsch?


    find /"Pfad_zum_Verzeichnis"/* -mtime +7 -exec rm {};


    Danke schonmal


    Gruß

  • Die Entware-Pakete sind keine AppCenter-Pakete. Du musst sie über die Kommandozeile einspielen (per ssh bzw. PuTTY):

    opkg install findutils

    Das lädt das Paket herunter und installiert es. Die Webseite ist hauptsächlich zur bequemen Suche der Paketnamen gedacht.


    Außerdem ist dein Kommando fehlerhaft, es sollte in etwas so aussehen:

    find "Pfad_zum_Verzeichnis" -mtime +7 -exec rm {} \;


    Dieses Kommando findet aber nicht nur Dateien sondern auch Verzeichnisse und das dürfte mit deinem rm-Kommando nicht vollständig tun. Für die Suche nur nach Dateien muss es dann so aussehen:

    find "Pfad_zum_Verzeichnis" -type f -mtime +7 -exec rm {} \;


    Aus der crontab muss der Befehl mit absolutem Pfadnamen angegeben werden, da dort keine Suchpfade aktiv sind, also:

    /opt/bin/find "Pfad_zum_Verzeichnis" -type f -mtime +7 -exec /bin/rm {} \;


    Ich hoffe, du weißt was du tust, denn eine falsche Parametrisierung kann dir das ganze NAS löschen. Der Befehl läuft mit root-Rechten!


    Teste besser mit echo in einer interaktiven Shell, was dein Kommando tut:

    /opt/bin/find "Pfad_zum_Verzeichnis" -type f -mtime +7 -exec echo {} \;

    7 Mal editiert, zuletzt von warpcam ()

  • Hallo Warpcam,


    danke für die schnelle Antwort und die Mühe.


    Richtig! ich muss aufpassen was ich tue. Deshalb werde ich nochmal genau dies prüfen und zurückmelden ob es geklappt hat bzw. wo es noch hakt.


    Viele Grüße