Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von staybb, 15.11.2012.

  1. staybb

    staybb Grünschnabel

    Dabei seit:
    08.08.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Hallo,

    ich habe auf einem Server einen HTTP File-Explorer installiert (AjaXplorer), auf dem User Dateien hochladen und verschicken können.

    Wenn ein User eine Datei hochlädt wird diese in seinem upload Ordner unter dem entsprechenden Verzeichnis gespeichert (z.B: /var/www/data/personal/user).

    Nun möchte ich einen cronjob erstellen der täglich neue hochgeladene Dateien und neu erstellte Ordner nach ihrem Upload-Datum prüft und wenn diese älter als 7 Tage sind automatisch löscht.

    Also am besten wäre es, wenn ich nur einen Cronjob erstellen müsste, der folgende Ordnersstruktur hierachisch nach neuen Dateien und Ordner überprüft und dann entsprechend löscht:
    /var/www/data/personal
     
  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. #2 HeadCrash, 15.11.2012
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Rechts oben ist ein Fenster für die Suche ...
    Als Suchbegriff würde ich vorschlagen "Dateien löschen die älter sind als"

    Alternativ wirf mal in den Kasten "Ähnliche Themen" unter diesem Thread einen Blick.

    mfg
    HeadCrash
     
  4. #3 returnNULL, 16.11.2012
    returnNULL

    returnNULL Mitglied

    Dabei seit:
    28.09.2012
    Beiträge:
    32
    Zustimmungen:
    0
    find -P "/var/www/data/personal/user/" -maxdepth 1 -type f \( -name '*' \) -ctime +7 -exec rm {} \;
     
  5. staybb

    staybb Grünschnabel

    Dabei seit:
    08.08.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Danke!

    Ich möchte den cronjob zuerst testen, bevor ich ihn auf dem scharfen System eintrage.

    Wie kann ich zum Testen eine Datei so manipulieren, dass sie als eine "7-tage alte" Datei anerkannt wird, wenn ich diese erst heute heute auf den Server hochlade?
     
  6. #5 returnNULL, 19.11.2012
    returnNULL

    returnNULL Mitglied

    Dabei seit:
    28.09.2012
    Beiträge:
    32
    Zustimmungen:
    0
    Das Problem hatte ich auch. Ich habe zwei Dateien genommen die zwei und drei Tage alt sind (irgendwelche bak Dateien waren das aus dem log) in einen Ordner geschmissen und die -ctime auf +2 gestellt. Mir hat das gereicht.

    Gruß

    NULL
     
  7. #6 tgruene, 19.11.2012
    Zuletzt bearbeitet: 19.11.2012
    tgruene

    tgruene Routinier

    Dabei seit:
    02.02.2012
    Beiträge:
    418
    Zustimmungen:
    0
    Mit touch.
    Code:
    tg@slartibartfast:~/tmp$ touch 1
    tg@slartibartfast:~/tmp$ ls -l 1
    -rw-r--r-- 1 tg users 0 Nov 19 18:15 1
    tg@slartibartfast:~/tmp$ touch -d "20121112" 1
    tg@slartibartfast:~/tmp$ ls -l 1
    -rw-r--r-- 1 tg users 0 Nov 12 00:00 1
    
    Bem: Mit Zitat waere mein Beitrag wohl leichter zu lesen gewesen - bezieht sich auf #4.
     
  8. #7 staybb, 21.11.2012
    Zuletzt bearbeitet: 21.11.2012
    staybb

    staybb Grünschnabel

    Dabei seit:
    08.08.2012
    Beiträge:
    9
    Zustimmungen:
    0
    ok der cronjob funktioniert.
    Ich habe nun noch einen Feinschliff den ich machen müsste.

    Unter /var/www/data/personal/ werden immer neue Benutzer auf der Plattform angelegt. So wie der cronjob jetzt ist, müsste bei jedem Anlegen eines User auch ein seperaten Cronjob mitangelegt werden, der dann zb. für das Verzeichnis:
    /var/www/data/personal/Person1
    /var/www/data/personal/Person2
    /var/www/data/personal/Person3
    /var/www/data/personal/Person4

    greifen müsste.

    Ich müsste jetzt einen globalen cronjob einrichten, der jeden Unterordner in "/var/www/data/personal/..." auf Dateien und Ordner welche älter als 7 Tage sind durchsucht und automatisch löscht.

    Das Problem das ich dabei habe; Es werden auch Systemordner und die eigentlichen Personenordner gelöscht, da diese ja auch älter als 7 Tage sind.

    Gibt es da irgend eine Möglichkeit dies auszuschließen? Wahrscheinlich nicht oder hat jemand eine Idee?
     
  9. #8 returnNULL, 27.11.2012
    returnNULL

    returnNULL Mitglied

    Dabei seit:
    28.09.2012
    Beiträge:
    32
    Zustimmungen:
    0
    Du kannst die Struktur doch im Ajaxplorer anpassen. Also die Repositorys irgendwo anlegen, wo die User nicht gemixt mit System Dateien sind.
     
  10. staybb

    staybb Grünschnabel

    Dabei seit:
    08.08.2012
    Beiträge:
    9
    Zustimmungen:
    0
    @returnNull: Ja das werde ich wahrscheinlich ab der neuen Ajaxplorer Version auch nutzen.

    Momentan habe ich für alle Repositorys einen cronjob angelegt. Dieser löscht die hochgeladenen Dateien, die älter als 7 Tage sind aus den jeweiligen Verzeichnissen.

    Jetzt möchte ich noch das der cronjob auch neu erstellte oder hochgeladene Ordner automatisch löscht.

    ich habe das rm -R erweitert, aber er löscht keine Ordner.

    Was muss ich dem Befehl mitgeben das er auch Ordner löscht? Und wie kann ich einen bestimmten Ordnernamen in dem job mitangeben, der nicht gelöscht werden soll (ein system ordner)?
     
  11. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  12. #10 returnNULL, 16.05.2013
    returnNULL

    returnNULL Mitglied

    Dabei seit:
    28.09.2012
    Beiträge:
    32
    Zustimmungen:
    0
    mal mit ? rm -fr versucht?
     
  13. staybb

    staybb Grünschnabel

    Dabei seit:
    08.08.2012
    Beiträge:
    9
    Zustimmungen:
    0
    Also ich habe es auch mit rm -fr versucht, leider löscht kein einziger cronjob Eintrag momentan Dateien.

    So steht er momentan in der crontab -e:
    Wie kann ich feststellen, ob der cronjob überhaupt momentan noch greift bzw. aktiv ist?
     
Thema: Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen
Besucher kamen mit folgenden Suchen
  1. temp ordner löschen cronjobs anlegen debian

    ,
  2. cron logs löschen älter als

    ,
  3. unix Crownjob Daten älter als löschen

Die Seite wird geladen...

Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen - Ähnliche Themen

  1. logdateien zu groß... script? cronjob?

    logdateien zu groß... script? cronjob?: Hi Leutz, ich hab nen Problem mit diesen Dateien: /var/log/messages und /var/log/wam Diese sind nämlich nach ein paar Tagen ~2,0GB groß....
  2. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  3. Cronjob

    Cronjob: Hallo Bin mir nicht sicher ob dass so Möglich ist... Ich möchte dass ein Job von 02:00 Uhr Nachts bis 03:00 Uhr Nachts NICHT läuft. *...
  4. Cronjob mit Root-Rechten

    Cronjob mit Root-Rechten: Hallo zusammen. Ich habe ein Backup-Skript (Shell-Skript) erstellt, das alle relevanten Daten via ssh auf einen Server lädt. Das Skript wird...
  5. script wird von cronjob nicht korrekt ausgeführt - Centos 5

    script wird von cronjob nicht korrekt ausgeführt - Centos 5: Guten Morgen, und hallo ins Forum. Ich habe ein Problem mit meinem Sicherungsserver: ich möchte zur täglichen inkrimentellen Sicherung...