Retourner aux forums || Retourner au forum general.general
general.general : supprimer les fichiers vieux de 1jour
Posté par funzyrip () le 13 janvier 2006je 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
> Lire le message (11 commentaires, moyenne: 1,5).
Un truc du genre
find $BACKDIR -atime +1 -exec rm -rf '{}' ';'
-
[^]Re: Un truc du genre
Posté par funzyrip () le 13/01/2006 à 09:20. (lien). Évalué à 1.:-) oui merci pour la fin de la commande
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
find $BACKDIR -atime +1 -exec rm -rf {} \;
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 () le 13/01/2006 à 09:34. (lien). Évalué à 1.euh
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 (page perso, ) le 13/01/2006 à 10:22. (lien). Évalué à 2.J'espère pour toi que si tu t'amuses à ça sous root, tu viens également de recompiler ton système en entier en moins de 24h ou 12h :)
-
[^]Re: manque juste la fin
Posté par funzyrip () le 13/01/2006 à 10:33. (lien). Évalué à 1.non mais je dois faire de la sauvegarde avec rsync...
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 () le 13/01/2006 à 11:13. (lien). Évalué à 3.man find
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 () le 13/01/2006 à 14:38. (lien). Évalué à 1.bah apparement ce n'est pas possible...
-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 () le 13/01/2006 à 15:31. (lien). Évalué à 2.mais voila y a pas création du fichier....
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 () le 13/01/2006 à 18:46. (lien). Évalué à 2.Rapidement:
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 () le 17/01/2006 à 17:10. (lien). Évalué à 1.bah en fait non aucun truc ne convient puisque le poste doit mettre a jour je ne sais pas une table d'index ou un truc dans le genre puisque les heures d'accès et d'écriture des fichiers sont bizarres (du style le matin a 7h26 alors qu'il n'y a personne dans les locaux ni aucun service lancé a cette heure)
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
-
-
-
-
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum general.general



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.