Bonjour à tous,
je cherche a supprimer dans un répertoire tous les fichiers et répertoires vieux de 24heures (toux ceux qui ont été créés la veille)
j'ai trouvé ça :
find $BACKDIR -atime +1 -exec rm -rf {}
mais ça ne fonctionne pas
ind: missing argument to `-exec'
mes recherches google n'ont pas pas données grand chose
peut etre qu'une option dans le man de rm m'a échappé???
si vous avez une solution... merci d'avance
# Un truc du genre
Posté par Calim' Héros (site web personnel) . Évalué à 2.
[^] # Re: Un truc du genre
Posté par funzyrip . Évalué à 1.
mais en fait elle s'execute bien la commande mais elle ne fait pas ce que je veux :-p
les fichiers et répertoires ne sont pas supprimés...
je ne dois pas faire appel a la bonne commande pourtant je vois pas comment faire autrement??
# manque juste la fin
Posté par matli . Évalué à 1.
le \; indique la fin de la commande en argument d'exec. Il faut l'échapper car sinon le shell l'interprète comme un véritable séparateur de commande
[^] # Re: manque juste la fin
Posté par funzyrip . Évalué à 1.
a chaque fois ca s'execute bien mais ça supprime jamais rien :-/
ou plutôt que les fichiers vieux de 1 jour, y aurai pas un moyen de supprimer ceux qui ont plus de 24h ou 12h??
merci de votre aide
[^] # Re: manque juste la fin
Posté par rangzen (site web personnel) . Évalué à 2.
[^] # Re: manque juste la fin
Posté par funzyrip . Évalué à 1.
dans un dossier /backup je créer des dossiers ttes les heures dans lesquels viennent se mettre les fichiers modifiés ou supprimés...
mais voila je voudrais que les dossiers de 09h-12-01-2006 d'hier soit supprimé...
find $BACKDIR -atime +1 -exec rm -rf {} \;
et cette commande ne supprime rien du tout ???
j'ai bo chercher je ne trouve pas....???
[^] # Re: manque juste la fin
Posté par gaaaaaAab . Évalué à 3.
forcément, avec -atime, ça va pas faire tout à fait ce que tu veux, surout si tu fais des ls pour voir si les fichiers sont toujours là ;-)
Essaie avec mtime ou ctime
[^] # Re: manque juste la fin
Posté par funzyrip . Évalué à 1.
-atime n
dernier accès au fichier il y a n*24 heures.
-ctime n
dernière modification du statut du fichier il y a n*24 heures.
mtime n
Fichier dont les données ont été modifiées il y a n*24 heures.
mais voila y a pas création du fichier....
pas si fort ke ça le pinguouin :-p
[^] # Re: manque juste la fin
Posté par gaaaaaAab . Évalué à 2.
et non. Mais cette date là, tu l'auras pas !
cf les réponses de Lew Pitcher
http://groups.google.com/group/alt.os.linux/browse_thread/th(...)
c'est en anglais et ça dit que la date de création n'est pas préservée. Le mieux que tu auras, c'est le mtime. Et comme le thread date d'aujourd'hui, ça doit s'appliquer aussi aux noyaux 2.6 et pas à un 2.2 antédiluvien ;)
[^] # Re: manque juste la fin
Posté par gnujsa . Évalué à 2.
atime: Lecture du fichier
mtime: Ecriture du fichier
ctime: Ecriture des meta-données du fichier (l'inode, donc proprietaire, groupe, permission, taille, etc...)
find $BACKDIR -mtime 1 renvoie tout les fichiers accedé en écriture il y a 24h
find $BACKDIR -mtime +1 renvoie tout les fichiers accedé en écriture il y a plus de 24h
find $BACKDIR -mtime -1 renvoie tout les fichiers accedé en écriture il y a moins de 24h
Comme dit le commentaire au dessus, il n'y a pas de date de création, mais le mtime devrait faire l'affaire dans ton cas.
P.S. j'espere que tu es sur du contenu de la variable $BACKDIR ...
[^] # Re: manque juste la fin
Posté par funzyrip . Évalué à 1.
je me suis amusé a écrire un truc pour supprimé les dossiers nommé de la veille... c pas optimal (ex: si on coupe le poste mardi a 16h et qu'on rallume jeudi a 18h le dossier de 16h de mardi ne sera pas supprimé) mais ça marche mieux que les find xtime qui me supprimaient des fichiers de 2h comme ceux de 24h et de plus a chaque restauration que j'aurai effectuée les fichiers auraient eu leur date de modifier et seraient faire .... .!
#########################################################################
# Variable representant le jour de la sauvegarde
#########################################################################
JOUR=`date +%Hh--%d-%m-%Y`
HIER=`date +%Hh--%d-%m-%Y --date '1 days ago'`
LUNDI=`date +%w`
VEND=`date +%Hh--%d-%m-%Y --date '3 days ago'`
#########################################################################
# Suppression du dossier backup de la veille
# Si le jour est lundi, on supprime le dossier backup de vendredi
#########################################################################
if [ $LUNDI -eq 1 ]
then
if [ -d "$BACKUPDIR/$VEND" ]
then
echo "Suppression du backup des 24 dernieres heures $BACKUPDIR/${VEND}";
rm -rf $BACKUPDIR/$VEND;
fi
else
if [ -d "$BACKUPDIR/$HIER" ]
then
echo "Suppression du backup des 24 dernieres heures $BACKUPDIR/${JOUR}";
rm -rf $BACKUPDIR/$HIER;
fi
fi
#########################################################################
## Creation du dossier backup du jour
#########################################################################
if [ -d "$BACKUPDIR/$JOUR" ]
then
echo "Le repertoire $BACKUPDIR/${JOUR} existe deja!";
else
mkdir $BACKUPDIR/$JOUR;
fi
BACKDIR=$BACKUPDIR/$JOUR
###########################################################
ca me permet ainsi d'avoir toujours un cycle de 24h pour restaurer les fichiers
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.