Jump to content

Question bete


Recommended Posts

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...

Link to comment
Share on other sites

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/

Link to comment
Share on other sites

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"

Link to comment
Share on other sites

Ce qui n'est pas un problème réellement :roll:

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 :modoreussi:

Link to comment
Share on other sites

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" ] ) :modoreussi:

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 :roll:)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...