Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] (Temporäre) Dateien regelmäßig / automatisch löschen, über Cron-Job?

Eingetragen von A. Winter (88)
am 05.08.2013 - 10:30 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x

Hallo zusammen,

letzte Woche habe ich eine Website online gestellt, auf der automatisiert Bilddateien und PDF-Dokumente
generiert und in einem von mir erstellten temp-Verzeichnis (/sites/default/tmp/) gespeichert werden.

Da diese Dateien nicht unmittelbar gelöscht werden (können), müsste ich einen Weg finden, dies automatisiert
zu erledigen.

Ich könnte mir vorstellen, dass man das mit einem Drupal Cron-Job erledigen könnte, allerdings habe ich im Netz
bisher noch nichts für mich hilfreiches gefunden.

Würde sich dazu ein spezielles Modul eignen oder kann ich über ein eigenes Modul die "Löschen-Funktionalität"
programmieren und dem Cron irgendwie hinzufügen.

Wäre schön, wenn mir jemand weiterhelfen könnte...

Grüße, A. Winter

‹ Error 404 und Google Toolbar [gelöst] (Temporäre) Dateien regelmäßig / automatisch löschen, über Cron-Job? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Für andere Personen, die

Eingetragen von A. Winter (88)
am 06.08.2013 - 17:17 Uhr

Für andere Personen, die ähnliche Anforderungen haben, möchte ich kurz meine Lösung beschreiben:

  1. Eigenes Modul ergänzen. In meinem Fall heißt es delete_temp_files. Es werden zwei Dateien benötigt: delete_temp_files.info und delete_temp_files.module
  2. Inhalt info-Datei:
    name = delete_temp_files
    description = Delete files from the temporary directory.
    core = 7.x
  3. Inhalt module-Datei:
    <?php
    /**
    * Implements hook_cron().
    */
    function delete_temp_files_cron() {
     
     
    // Serverpfad für das tmp-Verzeichnis ermitteln, z.B.
      // "/server/path/www/sites/default/files/tmp"
     
    $tmp_path = DRUPAL_ROOT . '/' . variable_get('file_public_path', conf_path() . '/files/tmp');
     
     
    // Array mit allen Verzeichnissen unterhalb des tmp-Verzeichnisses, z.B.
      // "/server/path/www/sites/default/files/tmp/07909024cfe6c5051a5ad200a85760ac"
      // "/server/path/www/sites/default/files/tmp/0880094bbfeed8fcc85b9dc491151a27"
      // usw.
     
    $directories = glob($tmp_path . '/*' , GLOB_ONLYDIR);

     
    // Jedes gefundene Verzeichnis unterhalb des tmp-Verzeichnisses rekursiv löschen
     
    foreach($directories as $dir) {
       
    $explode = explode("/", $dir);
       
    $tmp_pointer = count($explode) - 2;
        if(
    $explode[$tmp_pointer] == "tmp") {
         
    recursiveDelete($dir);
        }
      }
    }

    /**
    * Delete a file or recursively delete a directory
    *
    * @param string $str Path to file or directory
    */
    function recursiveDelete($str) {
      if(
    is_file($str)) {
        return @
    unlink($str);
      }
      else if(
    is_dir($str)) {
       
    $scan = glob(rtrim($str,'/').'/*');
        foreach(
    $scan as $index=>$path) {
         
    recursiveDelete($path);
        }
        return @
    rmdir($str);
      }
    }
    ?>
  4. Jetzt nur noch (hochladen und) aktivieren und anschließend werden bei jedem Cron-Lauf alle Verzeichnisse und Dateiem im tmp-Verzeichnis gelöscht.

Den Cron kann man auch manuell im Backend aufrufen über Administration » Configuration » System und hier dann die URL mit dem Cron-Key aufrufen.

Viel Spaß beim nachbauen!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • I recommend to you to visit a site on which there are many articles on this question.
  • Ритуальное агентство в Минске - Вечная память
  • Entity Reference - Title Felder werden als Link angezeigt
  • Tokens werden in Viev als Link angezeigt
  • Drupal Website gestalten
  • [bug entdeckt & workaround gefunden] benutzerdefinierte Felder vom Userprofil tauchen ungefragt auch in den Forumtopics auf...
  • [gelöst] Mass contact Empfängerliste nach Taxonomy Term statt Rolle
  • Update V. 9.3.12 auf V. 9.4 mit Fehler: Modul mySQL fehlt. Bitte Hilfe.
  • Sprachpfad, in Drupal Korrekt einstellen, auch bei den Meta-Tags
  • Update von Drupal 9.3 auf 9.4 oder bei 9.3 bleiben
  • Terminverwaltung
  • Views in Seite einbetten
Weiter

Neue Kommentare

  • Ah, ok. Wenn es ein Paragraph
    vor 12 Stunden 4 Minuten
  • Also kleiner Nachtrag noch:
    vor 12 Stunden 52 Minuten
  • In der View gibt es einen
    vor 15 Stunden 25 Minuten
  • Kann ich euch gerne mit
    vor 1 Tag 3 Stunden
  • ursache gefunden
    vor 1 Tag 14 Stunden
  • nun wirds erst richtig lustig...
    vor 1 Tag 15 Stunden
  • ursache weiter eingegrenzt
    vor 1 Tag 20 Stunden
  • Nein, das war es nicht. S. o.
    vor 4 Tagen 20 Stunden
  • Eventuell hier ein Hinweis?
    vor 4 Tagen 20 Stunden
  • Lösung gefunden
    vor 3 Tagen 7 Stunden

Statistik

Beiträge im Forum: 247855
Registrierte User: 19587

Neue User:

  • TommyOmish
  • ritualcor
  • Tkakah

» Alle User anzeigen

User nach Punkten sortiert:
wla9212
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3845
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 7 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association