Réglage de la tâche Cron pour supprimer le fichier après 24 heures
J'ai lu toutes les questions connexes et a été incapable de les comprendre. J'utilise Plesk, CPanel pour l'ensemble de cron job comme il a été conseillé par tout le monde.
Je veux supprimer tous les fichiers d'un dossier au bout de 24 heures. Supposons que je dois supprimer après toutes les 2 minutes (pour que je puisse vérifier son travail ou non).
J'ai deux options:
- D'exécuter un fichier PHP qui supprime tous les fichiers après 24 heures à l'aide d'une tâche cron
- Utiliser le cron job commande `rm` pour supprimer tous les fichiers
J'ai essayé les deux façons et n'a pas pu obtenir ma tâche est achevée.
Ici, c'est le pic de cpanel tâche planifiée:
http://i41.tinypic.com/2n0tsfs.png
Je veux supprimer les fichiers à partir du dossier var/www/example.com/public/js/complied
. Tous les fichiers à l'intérieur de ce complied
dossier doit être supprimé. Je ne sais pas où écrire dans la Commande textfield.
Dois-je utiliser la commande suivante?
rm /var/www/example.com/public/js/compiled/*.*
Ou dois-je exécuter un fichier php?
env php -q/var/www/example.com/public/js/cron.php
Le code source de ce Cron.php est:
<?php
$dir = "compiled"; //directory name
foreach (scandir($dir) as $item) {
if ($item == '.' || $item == '..')
continue;
unlink($dir.DIRECTORY_SEPARATOR.$item);
echo "All files deleted";
}
//rmdir($dir);
?>
J'ai testé ce code et il fonctionne très bien.
Merci d'avance.
OriginalL'auteur user2290749 | 2013-05-01
Vous devez vous connecter pour publier un commentaire.
- Je l'utiliser dans un script shell,...
oui, il fonctionne.
mais il est d'essayer-mtime +7 supprimer les fichiers après 7 jours comment je peux le faire dans toutes les 2 minutes coz je sais que pour chaque période de 24 heures devraient être -mtime +1 mais si je veux le tester dans toutes les deux minutes?
La commande va supprimer les fichiers de plus de 7 jours.. vous pouvez définir la tâche cron pour exécuter toutes les minutes ou aussi souvent que vous le souhaitez, de sorte que chaque minute que vous êtes en train de supprimer les fichiers qui sont âgés de plus de 7 jours (ou 1 dans votre cas). Si vous souhaitez modifier la commande ainsi que pour les tests, voir la page de man pour trouver: linux.die.net/man/1/find
Il y a une mmin option pour la commande rechercher.
OriginalL'auteur MrCleanX
Si vous avez accès à votre Serveur ou SSH, il suffit de l'ajouter à votre crontab.
Dans votre SSH, tapez simplement
vous verrez une liste de tâches cron sur cela, ajoutez simplement cette ligne de code à votre tâche cron:
Le code ci-dessus signifie que tous les 10h du matin, vous êtes en train de supprimer tous les fichiers dans le chemin d'accès que vous fournissez.
Veuillez consulter ce lien pour plus d'info sur Cron: http://en.wikipedia.org/wiki/Cron
OriginalL'auteur JiNexus
il a travaillé pour moi de supprimer en une fois par jour
si vous souhaitez supprimer tout dans ce dossier, mais de laisser le dossier lui-même:
OriginalL'auteur Shuhad zaman
Pour optimiser MrCleanX solution un peu, utiliser
xargs
:Au lieu de l'appeler rm pour chaque fichier à supprimer,
xargs
packs de plusieurs fichiers ensemble pour un seul appel àrm
La
-print0
et-0
choses sont à faire à la foisfind
etxargs
à l'aide NULL chaînes, qui est nécessaire pour gérer les noms de fichiers avec l'espace et d'autres caractères dans leurs noms.-print0
, xargs peut échouer avec une erreur cryptiquexargs: argument line too long
.OriginalL'auteur mogul