myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM
Ungelesen 20.05.17, 12:40   #1
carlo1
Anfänger
 
Registriert seit: Oct 2008
Beiträge: 2
Bedankt: 0
carlo1 ist noch neu hier! | 0 Respekt Punkte
Standard 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/snap2/');
?>

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?!

Eine 2. Variante hab ich auch noch, funktioniert aber auch nicht.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$dir = 'xxxx/site21x/web/foscam/FI9805W_00626xxxx/snap2/';
$handle = opendir($dir);
$cnt = 0;

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

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;
error_reporting(E_ALL);
ini_set('display_errors', 1);
$dir = '/xxxxx/site21xx/web/foscam/FI9805W_00626xxxx/record/';
$handle = opendir($dir);
$cnt = 0;

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

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;
?>
carlo1 ist offline   Mit Zitat antworten
Ungelesen 15.06.17, 19:27   #2
KleinerEisbaer666
Anfänger
 
Registriert seit: Jan 2013
Beiträge: 10
Bedankt: 24
KleinerEisbaer666 ist noch neu hier! | 0 Respekt Punkte
Standard

Ohne Gewähr...

<?php
$udir = 'FI9805W_00626Exxxxx/snap2';
$tage = 15;

// Ab hier nichts verändern

$base = $_SERVER["DOCUMENT_ROOT"] . DIRECTORY_SEPARATOR;
$udir .= DIRECTORY_SEPARATOR;
$files = scandir($base . $udir);
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
if (is_file($base . $udir . $file)&& (time() - filemtime($file) > ($tage * 24 * 60 * 60))) {
unlink($base . $udir . $file);
}
}
}
?>
KleinerEisbaer666 ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.


Sitemap

().