ilch Forum » Allgemein » HTML, PHP, SQL,... » Script zum autodelete

Geschlossen
  1. #1
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Hallo,

    ich habe folgendes Problem.

    Ich habe ein Script das mir jede Nacht meine Datenbank sichert.

    Da ich von ganz klein auf schon Faul war, möchte ich jetzt auch noch das die Dateien die älter als 7 Tage sind automatisch gelöscht werden.

    Habe zwar schon so einiges gefunden und versucht, aber irgendwie ohne Erfolg.

    <?php
    
     $dir = '/';
               if ($d = @opendir($dir)) {
                 while (($file = readdir($d)) !== false) {
                   if (substr($file,0,4)=="_.gz"){
                     // Dateien, die älter als 3600 * 144 = 6 Tage sind
                     // 3600
                     $ftime = filemtime($dir.'/'.$file);
                     if (time()-$ftime > 3600 * 144){
                       unlink($dir.'/'.$file);
                     }
                   }
                 }
                 closedir($d);
               break;
         }
    ?>
    <?php
    
    $deldate=date("d-m-Y",(strtotime("now")-3600*144));
    
    
    
    
    echo " Die Backupdatei vom $deldate wurde erfolgreich gelöcht";
    
    ?>


    Welchen Pfad muss ich bei $DIR eingeben???

    if (substr($file,0,4)=="_.gz"){


    Wie kann ich dem noch sagen das der alle ...sql.gz Dateien löschen soll???

    Hat jemand ein anderes Script was auf jeden fall Funktioniert???

    Danke schonmal

    Gerdi

    betroffene Homepage: externer Link
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Hey, gerdi!

    Das hilft dir weiter
    de.php.net/manual/de/function.filemtime.php

    Um Endungen abzufragen
    $parts = explode(".", $filename);
    $ext = $parts[count($parts)-1];


    Mit böhsen Grüßen
    BöhserDavid
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Das ging ja mal schnell. lächeln

    Ich schau mir das gleich mal an.

    Gerdi
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Also wie ich das sehe wird ja die Endung mit dieser Zeile abgefragt. ODER??
     if (substr($file,0,4)=="_.gz"){

    Ich denke das ich da nur was bei _.gz ändern muß. Aber wie.

    Bin mir auch nicht sicher was ich bei $dir angeben muß.
    Das ist das Original Skript

     $dir = '/pfad/zu/deinem/ordner';
               if ($d = @opendir($dir)) {
                 while (($file = readdir($d)) !== false) {
                   if (substr($file,0,4)=="PDF_"){
                     // Dateien, die älter als 3600 * 144 = 6 Tage sind
                     // 3600
                     $ftime = filemtime($dir.'/'.$file);
                     if (time()-$ftime > 3600*144){
                       unlink($dir.'/'.$file);
                     }
                   }
                 }
                 closedir($d);
               break;
         }


    Mit dem link von dir kann ich nicht ganz so viel anfangen.
    Mein Englisch ist ganz schön eingerostet.

    Danke

    Gerdi
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Also wie ich das sehe wird ja die Endung mit dieser Zeile abgefragt. ODER??
     if (substr($file,0,4)=="_.gz"){

    Ich denke das ich da nur was bei _.gz ändern muß. Aber wie.

    Bin mir auch nicht sicher was ich bei $dir angeben muß.
    Das ist das Original Skript

     $dir = '/pfad/zu/deinem/ordner';
               if ($d = @opendir($dir)) {
                 while (($file = readdir($d)) !== false) {
                   if (substr($file,0,4)=="PDF_"){
                     // Dateien, die älter als 3600 * 144 = 6 Tage sind
                     // 3600
                     $ftime = filemtime($dir.'/'.$file);
                     if (time()-$ftime > 3600*144){
                       unlink($dir.'/'.$file);
                     }
                   }
                 }
                 closedir($d);
               break;
         }


    Mit dem link von dir kann ich nicht ganz so viel anfangen.
    Mein Englisch ist ganz schön eingerostet.

    Danke

    Gerdi
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
     $dir = '/pfad/zu/deinem/ordner';
               if ($d = @opendir($dir)) {
                 while (($file = readdir($d)) !== false) {
                   $parts = explode(".", $file);
                   $ext = $parts[count($parts)-1];
                    if ($ext=="gz"){
                     $del_time = 3600*24*7;
                     $ftime = filemtime($dir.'/'.$file);
                     if (time()-$ftime > $del_time){
                       unlink($dir.'/'.$file);
                     }
                   }
                 }
                 closedir($d);
               break;
         }

    So sollte es gehen, das einzige, was du noch anpassen musst, ist der Pfad zum Ordner.
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Ist da der Ordner gemeint wo das Script liegt oder der Ordner wo die backup.sql liegt???
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Warum schreibe ich hier alles doppelt????

    Sehr merkwürdig.
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    Weil du nach dem absenden der Nachricht gerne mal F5 drückst?!

    vielleicht ist das hier ja auch interessant für dich
    externer Link
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Ja danke. Hatte ich mir schon mal angeschaut.

    Da war nur das Problem, das phpmybackuppro nicht auf meinen FTP zugreifen konnte.

    Keine Ahnung warum.

    Trotzdem Danke
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    ähm... das kann dir die backupdateien auf den Server legen unde/oder per mail zusenden.
    Es gibt auch ne Option Dateien zu löschen auf dem FTP.
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Hallo Panicsheep,

    ja du hast recht und ich war mal wieder blind.

    Man brauch die FTP Funktion ja gar nicht.

    Habe das Programm jetzt mal startklar gemacht.

    Wenn ich es so aufrufe geht alles, auch das autodelete. lachenlachenlachen

    Werde jetzt noch ein Cronjob einstellen und dann morgen abwarten.

    Danke für eure Hilfe.

    Gerdi
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Panicsheep Hall Of Fame
    Registriert seit
    24.08.2004
    Beiträge
    10.192
    Beitragswertungen
    16 Beitragspunkte
    Also ich lasse mir schon lange per Cronjob jede Nacht ein DB Backup senden. Funktioniert tadellos.

    Lass dir am besten auch von deinem Anbieter die Ausführung des Cronjobs per Mail bestätigen, dann kannst du wenn mal ein Backup nicht ankommt feststellen ob's am Script oder am Cronjob lag.
    Omnia bona erunt
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    gerdi Mitglied
    Registriert seit
    19.04.2008
    Beiträge
    66
    Beitragswertungen
    1 Beitragspunkte
    Genau das habe ich gerade gemacht.

    Danke
    externer Link
    +++Der Gamer FunClan+++
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten