# Cronjob - Dateien löschen



## flou (17. Oktober 2005)

Servas,

 ich möchte via php einen cronjob steuern, der in einen bestimmten verzeichnis, alle Dateien nach dem erstellungsdatum prüft, wenn sie älter is wie 48 stunden, soll sie gelöscht werden.
 Is das möglich?

 Gruss

 flou


----------



## Sinac (17. Oktober 2005)

Was hat das denn mit PHP zu tun, dafür reicht doch cron und ein shell-script, oder?


----------



## flou (17. Oktober 2005)

ja prinzipiell schon...aber wenn du keine root-zugriff hast?
ich hätt gedacht, das geht irgendwie? hmmmm....


----------



## Sinac (17. Oktober 2005)

Wenn du keine Berechtigungen auf das Verzeichniss hast ist es doch egal ob du das nun per script oder per php machst, oder?
Wieso hast du denn keine Rechte, kannste die nicht über su holen oder biste nicht root?


----------



## Paula (18. Oktober 2005)

Für die PHP-Lösung könnte es in etwa so ausschaun (ungetestet): 
	
	
	



```
<?php


$dir = '/www/user/htdocs/files/';
$handle = opendir ( $dir );
while( false !== ( $file = readdir( $handle ) ) ) {

	if( filemtime( $file ) > ( time() - 60*60*24*2 ) ) {

		unlink( $dir . $file );
		echo 'Die Datei wurde geloescht.';		

	}
	else {

		echo 'Die Datei ist aelter als 48 Stunden.';

	}

}


?>
```


----------



## Dr Dau (18. Oktober 2005)

Hallo!

Wobei ein PHP Script per Hand gestartet wird..... oder durch ein Cronjob.
Ein Cronjob soll ja zu einem vorgegebenem Termin eine vorgegebene Aufgabe ausführen.
Wenn er aber kein Root ist, wird er wohl kein Cronjob einrichten können.
Evtl., wenn er nicht grad bei einem LowBudget Hoster ist, richtet sein Hoster (warscheinlich kostenpflichtig) für ihn ein Cronjob ein.

Ich würde also auch ein entsprechendes Script nehmen und dieses einmal pro Tag oder so starten.
Wenn das Script keine Ausgabe produzieren soll, könnte er es auch in seine Startseite mit einbinden.
Dann wird es bei jedem Seitenaufruf im Hintergrund mit ausgeführt.
Dabei ist aber zu bedenken dass, wenn das Script viel zu tun (löschen) hat, der Aufbau der Seite entsprechend lange dauert.

Gruss Dr Dau


----------



## Dennis Wronka (19. Oktober 2005)

@flou:
Halte Dich bitte an Gross- und Kleinschreibung.
Danke.


----------



## dwex (25. Oktober 2005)

Hallo,

selbst wenn sein Hoster das nicht erlaubt gibt es möglichkeiten "Cron"-Jobs auszuführen.
Cron-Jobs sind ja chronologische Aufgaben - gell

Es gibt einige Seiten im Netz die solche Dienste kostenlos anbieten.

Ein Beispiel: http://www.jgs-xa.de/jgs_cron.php
Ein weiteres Beispiel: http://www.cronjob.de

Die Cronjobs dürfen nur nicht mehr als 25kb verursachen.
Ich hab da ein paar laufen - funktioniert bestens.

Ausserdem könnte er ja auch (Confixx 3.x vorausgesetzt) die Cronjobs beim Hoster direkt machen.


----------



## bensky (24. Mai 2006)

Hi, was meinst du mit "nicht mehr als 25 KB" verursachen ? 

Wenn ich ein PHP script habe, das das z.B. 10.000 werte aus ner datenbank löscht, meinst du dann das script als 25 KB oder wie? kann man nicht mit men kleinen script mehrer große aufrufen? thx


----------



## Flex (24. Mai 2006)

bensky hat gesagt.:
			
		

> Hi, was meinst du mit "nicht mehr als 25 KB" verursachen ?
> 
> Wenn ich ein PHP script habe, das das z.B. 10.000 werte aus ner datenbank löscht, meinst du dann das script als 25 KB oder wie? kann man nicht mit men kleinen script mehrer große aufrufen? thx


Da das interner Traffic ist, fällt das dem User gar nicht auf (Bis auf die erhöhte Ladezeit wahrscheinlich).
Allerdings sollte man wohl keine Website aufrufen die ein komplettes Design besitzt sondern einfach nur das Script, was keine eigentliche Aufgabe hat, sondern einfach nur arbeitet und dann wieder aufhört.


----------



## dwex (24. Mai 2006)

Flex hat gesagt.:
			
		

> Da das interner Traffic ist, fällt das dem User gar nicht auf (Bis auf die erhöhte Ladezeit wahrscheinlich).
> Allerdings sollte man wohl keine Website aufrufen die ein komplettes Design besitzt sondern einfach nur das Script, was keine eigentliche Aufgabe hat, sondern einfach nur arbeitet und dann wieder aufhört.



Mit 25kb Traffic meinte ich das diese Cron-Job-Hoster keine Cronjobs ausführen wenn dieser mehr als 25kb Traffic beim Aufruf generiert.

Also wenn man beim Cron-Job-Hoster eine PHP-Datei auf seinem Webspace ausführen lässt dann darf diese PHP-Datei nicht mehr als 25kb an den CronJob-Hoster zurücksenden.

Sind jezt alle Klarheiten hoffentlich beseitigt.


----------

