Hinweise


Willkommen

Navigation


Partner Links

 
Antwort Themen-Optionen Ansicht
Ungelesen 20.05.17, 14:14   #1
Benutzerbild von carlo1
Mitglied seit: Jan 2015
Beiträge: 28
carlo1 ist offline
carlo1
Member
 
cronjob problem

Hallo
ich hab einen webspace mit 50GB und meine 2 Webcams übertragen die aufnahmen dorthin.
da ja ziemliche datenmengen zusammenkommen, möchte ich einen Cronjob verwenden, der mir die Files, die älter als 15 tage sind, automatisch löscht. der cronjob soll halt 1x am tag dies erledigen. mein Webspaceanbieter kann dies auch.

In meinem Coding ist aber irgend ein Fehler drin, sodass die Files nicht gelöscht werden. Vielleicht kann mir jemand helfen.

Ausgangslage: Das Speicherverzeichnis lautet: /FI9805W_00626Exxxxx/snap2 und die files darin MDAlarm_20170515-070726.jpg
MDAlarm_20170515-070727.jpg
MDAlarm_20170515-070728.jpg


Mein Cronjob Script ist folgendes:
<?php

function delete_files($dir)
{
$handle = opendir($dir);
$cnt = 0;

$timeout = time()-60*60*24*2;

while(false !== ($file = readdir( $handle ))) {
$absfile = $dir . $file;
if(is_dir($absfile)) continue;

$mtime = filemtime($absfile); // ggf. filectime() statt filemtime() verwenden

printf("%s: mtime = %s, timeout = %s\n", $absfile, strftime("%Y-%m-%d,%H:%M:%S",$mtime), strftime("%Y-%m-%d,%H:%M:%S",$timeout));
if($timeout > $mtime) {
unlink( $absfile );
printf("%s geloescht\n", $absfile);
$cnt++;
}
}
closedir($handle);
echo 'Anzahl: ' . $cnt;
}

delete_files('xxxx/foscam/FI9805W_00626Exxxxx/record/');
delete_files('xxxx/foscam/FI9805W_00626Exxxxx/snap/');
?>

Dieses Script hat mir jemand geschrieben, funktionierte schon 1x. Es dürfte sich jedoch etwas verändert haben am system und jetzt klappt es nicht mehr. Ich selbst hab null ahnung von Scripten.
Weiß hier nichtmal, wo ich das Alter der Datei einstellen kann?!

Mit Zitat antworten Beitrag melden
   
Ungelesen 13.06.17, 01:34   #2 Top
Benutzerbild von FiSK
Mitglied seit: Oct 2015
Beiträge: 5
FiSK ist offline
FiSK
 
cronjob problem

PHP-Code:
<?php
  $files 
glob(cacheme_directory()."*");
  
$now   time();

  foreach (
$files as $file) {
    if (
is_file($file)) {
      if (
$now filemtime($file) >= 60 60 24 2) { // 2 days
        
unlink($file);
      }
    }
  }
?>
Das geht auch kürzer, wartungsärmer und mit foreach-Schleife. Trag halt dein Verzeichnis noch richtig ein.

Mit Zitat antworten Beitrag melden
   
Antwort


 

Ähnliche Themen
Thema Forum
Ton Problem Videobearbeitung
Problem CS4 O.o Grafik/Design


Themen-Optionen
Ansicht



Jetzt registrieren


Registrieren | Forum-Mitarbeiter | Kontakt | Nutzungsbedingungen | Archiv

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:49 Uhr.

All trademarks are the property of their respective owners.
Copyright ©2019 Boerse.IM/AM/IO/AI



().