suppression en masse et rapide de fichier - Divers - Linux et OS Alternatifs
Marsh Posté le 12-02-2010 à 13:55:44
find . -ctime +30d -delete
Marsh Posté le 12-02-2010 à 14:05:58
j'ai déjà essayé ça, mais alors je rencontre un problème. Il efface bien les fichiers vieux de plus de 30 jours. Mais comme je sauvegarde les fichiers avec rsync en conservant les attributs et que pdumpfs conserve également les attributs, la commande find efface également les fichiers dans les répertoires autres que j -30.
j'ai essayé en lui collant un 'type d' pour qu'il s'attaque au répertoire parent qui lui reçoit la date de création réelle, mais ça ne fonctionne pas.
La commande find -delete serait parfaite si je parvenais à lui donner comme zone de rechercher le répertoire j -30. Ce qui donne pour ceux qui ne connaissent pas pdumpfs YYYY/MM/DD .
C'est surtout que je ne vois pas comment lui dire de chercher dans le répertoire.
Marsh Posté le 12-02-2010 à 14:09:17
bah au lieu de . tu mets le répertoire voulu
Marsh Posté le 12-02-2010 à 14:11:05
disons que j'aurais voulu mettre ça dans un cron et ne plus m'en soucier.
Marsh Posté le 12-02-2010 à 14:11:57
calcule la date à moins 30 jours et puis voila
Marsh Posté le 12-02-2010 à 14:14:41
Quelque chose comme ca dans ton crontab ?
0 0 * * * root find /le/chemin/vers/le/dossier/j-30 -ctime +30d -delete
Pour lancer la commande tous les jours a minuit.
Marsh Posté le 12-02-2010 à 14:20:49
black_lord a écrit : calcule la date à moins 30 jours et puis voila |
C'est quelque chose que je ne connais pas. Je ne suis pas informaticien de formation. J'ai quelques connaissances qui me permettent d'assurer la maintenance des pc's de la pme pour laquelle je travaille, mais ce n'est pas ma fonction première.
J'implémente des solutions linux car elles nous permettent de faire des économies et que pour la plupart de nos besoins (mails, ftp, etc..), c'est gratuit et bien documenté. Par contre, dès qu'il faut entrer dans le code, je ne suis plus.
Marsh Posté le 12-02-2010 à 14:25:43
pour l'avoir :
|
à toi de la formatter comme tu veux
Marsh Posté le 18-02-2010 à 09:57:21
Je reviens vers vous car mon script semble ne pas fonctionner.
|
Alors que si je remplace -delete par -exec ls {} \;
J'obtiens bien la liste des répertoires et fichiers du répertoire 2010/01/19/
J'ai essayé de remplacer le -delete par -exec rm -rf {} \; mais sans plus de succès.
Une idée?
Petit détail, j'ai voulu utiliser la commande strace -p 3198 pour voir ce qui était effectivement fait par le script, mais j'obtiens la réponse suivante: Process 3198 attached - interrupt to quit
Marsh Posté le 18-02-2010 à 14:47:37
Hanka a écrit : Je reviens vers vous car mon script semble ne pas fonctionner.
|
C'est une bonne idee ca.
Comme ca si jamais ta fonction "date=$(date --date='30 days ago' +%Y/%m/%d)" ne retourne rien pour y ou x raisons, ca efface dans tous les repertoires (vu que tu ne fais pas de tests pour savoir si ta variable est vide ou non)
Marsh Posté le 18-02-2010 à 15:15:20
Ce n'est pas faux.
#!/bin/bash |
Ceci te semble-t-il plus approprié?
Marsh Posté le 12-02-2010 à 13:47:03
Bonjour tout le monde,
J'utilise pdumpfs pour journaliser une partie de mes backups sur disques. Ca fonctionne pas mal et me permet d'accéder rapidement aux sauvegardes sans devoir manipuler les bandes.
Par contre, le nettoyage est problématique. Pas tant à cause de l'espace utilisé, mais plutôt au niveau de la quantité de fichiers à supprimer. Je nettoie automatiquement j-30 chaque jour, par contre.
Mais la commande rm -rf n'est pas très rapide. Il n'est pas rare que la suppression de fichiers prenne plusieurs jours. Il faut au serveur plusieurs heures avant de commencer à effectivement supprimer les fichiers. Connaitriez-vous une alternative à la commande rm?
Merci d'avance.