Bonjour ,
Je cherche à récupérer des fichiers d'un type précis (on va dire des .conf et des .ini ) qui se baladent dans un arborescence plus ou moins profonde (l'exemple que je vais donner est a deux niveaux , mais l'ideal serai de pouvoir aller jusqu'au bout). Le but étant de créer une archive tar ou tgz qui lorsqu'on la décompresse regénérerai l'arborescence complète d'où se trouvaient les fichiers ini et conf en question :
exemple :
/export/home/monprog
data.dat
prog.bin
prog.ini
/export/home/monprog/sousprog
sousdata.dat
sousprog.bin
sousprog.ini
/export/home/monprog/sousprog2
sousdata2.dat
sousprog2.bin
sousprog2.ini
Si je lance mon script là dessus , il doit me générer un fichier qui une fois décompressé me donne la chose suivante :
/temp/export/home/monprog
prog.ini
/temp/export/home/monprog/sousprog
sousprog.ini
/temp/export/home/monprog/sousprog2
sousprog2.ini
Je ne l'ai pas encore précisé mais ceci est pour récupérer les fichiers de conf d un serveur sun qui fait tourner différentes applications GL Trade .
Je pense qu'un tel script servira à tout les admins *nix .
Merci d'avance pour votre aide
# avec find
Posté par Olivier Jeannet . Évalué à 4.
te donne la liste des fichiers ("-o" signifie "or" logique) que tu cherches.
Pour archiver dans un fichier, je ferais :
tar czf monarchive.tgz $(find monprog -name \*.ini -o -name \*.dat)
Jette un oeil au man de find, tu verras qu'il y a pas mal de possibilités, comme limiter la profondeur de recherche avec "-maxdepth levels", filtrer en fonction de la taille avec "-size arg", filtrer en fonction du type avec "-type filetype".
Par exemple :
find -type f -maxdepth 2 -size -100k
te donne tous les fichiers de moins de 100k dans le répertoire courant et les sous-répertoires juste en-dessous.
Sinon je crois que tar a des options pour restreindre le type de fichier qu'il prend en compte.
[^] # Re: avec find
Posté par syntaxerror . Évalué à 4.
Utiliser plutôt l'option --files-from de tar et lui faire avaler stdin (-T options courte):
find /export/home/monprog -name \*.ini -o -name \*.dat | tar -cpvszf /mon_fichier.tar.gz -T -
# Tentative
Posté par Sisyphe Plâtrier . Évalué à 3.
Hopzisselp
[^] # Re: Tentative
Posté par totof2000 . Évalué à 4.
Attention, si c'est une SUN, n'utilise pas le tar livré avec le système (Entre autres, il n'accepte pas le 'j' de cjf, et sur certaines versions de solaris le tar est buggé). Installe un gnu tar ou utilise cpio.
# Pour ceux que ca interresseraient :
Posté par snurpsss . Évalué à 1.
tar -cf config_ùname -a |cut -f2 -d" "`_`date +%Y%m%d`.tar `find ./ -name *.ini`
voila , on lance ca dans le repertoire depuis lequel on veux recupérer l'arborescence de fichier ini
Merci a tous pour votre aide
[^] # Klavouicage
Posté par Sisyphe Plâtrier . Évalué à 2.
en effet
`u
est devenu
ù
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.