2010-12-02 6 views
3

J'ai cette tâche cron pour vider un dossier temp j'ai une fois par jour:travail Cron pour supprimer les fichiers créés avant un moment précis

rm -rf /home/username/public_html/temp/* 

Je veux que ce travail cron pour supprimer tous les fichiers qui ont créé avant qu'il fonctionnera avec 5 minutes et plus juste pour m'assurer que mon script n'a plus besoin de ces fichiers.

Disons que je mets le travail cron pour exécuter tous les jours à 10:00 .. Je veux supprimer tous les fichiers dans ce dossier qui a créé avant 09h55

Merci beaucoup d'experts!

Répondre

2

Si vous utilisez GNU find, essayez ceci:

find /home/username/public_html/temp -type f -mmin +5 -delete 

devrait également fonctionner avec FreeBSD ou bien d'autres versions de find.

+0

J'utilise cPanel. – Dido

0

Autre solution serait: -

point de tâche cron pour exécuter un fichier php une fois par jour.

$dir = 'your/directory/'; 
    foreach(glob($dir.'*.*') as $v){ 
    $last_modified = filemtime($v);//get the last modified time of file 
    $fmtime=date("h:i:s", $last_modified); 
    $currentTime=date("h:i:s"); 

    if (//check here if your file is created before 09:55Am) 
    unlink($v); 

    } 

Merci.

+1

Glob '*. *' ?? Je pense que votre DOS montre. Cela ne fera correspondre les fichiers avec un point dans le nom. –

0

similaires à Jeffreys réponse, je vous suggère quelque chose comme ceci:

for i in `find /home/username/public_html/temp -type f -mmin +5` 
    do rm $i 
done 
Questions connexes