Eujd Posté(e) le 12 avril 2008 Partager Posté(e) le 12 avril 2008 Salut Bon voila, J'ai un petit problème sous ubuntu... J'ai fait un script qui efface le contenu d'un repertoire temporaire. J'ai voulu mettre un controle pour qu'il mdi'indique quand il n'y a pas de fichier dans le repertoire avec un if... voila le code #!/bin/bash set -x for File in `find /opt/lampp/htdocs/SEVE-G/file/download/temp/ -type f 2>/dev/null`; do if [ -n $File ]; then echo No file to delete; else echo $File; fi; done J'ai essayé avec le -n et le -z or (avec le set -x) la seule chose qui s'affiche à l'écran c'est la commande find... ce script fonctionne sous solaris... alors à moins qu'il y ait un bug avec le test -z et le -n... ou alors je suis un boulay... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Arafel Posté(e) le 12 avril 2008 Partager Posté(e) le 12 avril 2008 Salut :) En faite, t'as pas vraiment besoin de ça... sous linux, il existe un truc formidable du nom de tmprotate et tmpwatch qui efface automatiquement tout ce qui se trouve dans /tmp et qui a plus de 7 ou 10 jours (selon ta distrib...) et t'as la même chose (logrotate et logwatch) qui font ça pour ton /var/log/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Eujd Posté(e) le 12 avril 2008 Auteur Partager Posté(e) le 12 avril 2008 Salut :)En faite, t'as pas vraiment besoin de ça... sous linux, il existe un truc formidable du nom de tmprotate et tmpwatch qui efface automatiquement tout ce qui se trouve dans /tmp et qui a plus de 7 ou 10 jours (selon ta distrib...) et t'as la même chose (logrotate et logwatch) qui font ça pour ton /var/log/ Le soucis c'est que ce n'est ps un répertoire temp "standard" Lien vers le commentaire Partager sur d’autres sites More sharing options...
tyrann27 Posté(e) le 12 avril 2008 Partager Posté(e) le 12 avril 2008 Ce qui n'est pas un problème réellement Sous ubuntu c'est tmpreaper man tmpreaper pour voir comment ça fonctionne et ne pas oublier de lui spécifier le chemin du dossier. Tu peux évidemment le mettre dans ton crontab pour qu'il le fasse tout seul tous les X jours ou tout les premier du mois, etc... Quand tu veux quoi Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 12 avril 2008 Partager Posté(e) le 12 avril 2008 J'ai fait un script qui efface le contenu d'un repertoire temporaire.J'ai voulu mettre un controle pour qu'il mdi'indique quand il n'y a pas de fichier dans le repertoire avec un if... voila le code #!/bin/bash set -x for File in `find /opt/lampp/htdocs/SEVE-G/file/download/temp/ -type f 2>/dev/null`; do if [ -n $File ]; then echo No file to delete; else echo $File; fi; done Il faut toujours mettre des guillemets entre les crocher (donc if [ -n "$File" ] ) J'ai essayé avec le -n et le -z or (avec le set -x) la seule chose qui s'affiche à l'écran c'est la commande find... C'est le "set -x" qui affiche la commande. Et ton code n'affiche rien si le dossier ne contient pas de fichiers (même pas "No file to delete"). Pour le test, si tu veux utiliser un code similaire à ce que tu as mis, tu peux faire ça : #!/bin/sh find "$DIR" -type f 2>/dev/null | while read line do echo "$line" # rm "$line" done Et sinon, tu peux utiliser directement l'option "-delete" de find : $ find "$DIR" -type f -delete (Accessoirement pour vider un dossier, un petit rm -r "$DIR" marche aussi très bien ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.