Bienvenue visiteur (Inscription |  Connexion)
Qui est en ligne ?
Il y a : 20 utilisateurs en ligne, consultez le détail
Auteur Message
burk
#0 Message posté le : 17-05-2008 à 17:29:00


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 17-05-2008
Nombre de messages : 3
voila, je rame pour extraire un cpio d'une archive dans un autre répertoire que le répertoire d'origine, le backup est celui d'un répertoire comprenant un ou plusieurs projets en C et l'idée et de n'extraire que le(s) main.c dans un répertoire "test_rep" situé dans le répertoire d'ou la cmd est lancée.

je pars de cette commande :
cat archive.cpio | cpio -idv "*main.c" test_rep


Le message est le suivant :
main.c not created: newer or same age version exists


Ce qui me fait penser que cpio ne tient pas compte du faite qu'il doive décompresser dans un autre répertoire puisqu'il me dit que le fichier qui a servit a faire le backup est au moins ausssi recent que le fichier qu'il veut ecraser



--Message édité par burk le 17-05-2008 à 18:41:54--
Azollyx
#1 Message posté le : 17-05-2008 à 17:39:02


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2032
Salut Burk, bienvenu sur notre forum

Je ne connais pas cpio, mais que se passe-t-il si tu fais
cd test_rep
cpio -idv '*main.c' < ../archive.cpio
?
D'autre part, pourrais-tu nous présenter cpio en deux mots, notamment par rapport à tar ?

Bonne journée.

-------------------------------------
La force vaincra ! :D
burk
#2 Message posté le : 17-05-2008 à 17:55:16


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 17-05-2008
Nombre de messages : 3
merci

le résultat de ta cmd est le suivant

cpio: repertoire_origine/main.c not created: newer or same age version exists repertoire_origine/main.c
3913 blocks


Le nbre de blocs = le nombre de partie de l'archive

CPIO est un outil (man cpio fonctionne) d'archivage, de testage et de désarchivage au format cpio qui permet de traiter facilement des fichiers en masse comme tout un file system.

Voici les cmd qui fonctionnent dont je dispose maintenant (apres recherches) pour lesquelles j'ai remplacé mon arborescence de base par /rep" pour plus de facilité :

Sauvegarde :
------------
find /rep/ansiC | cpio -ocv > /rep_destination/`date +%y%m%d`_ansiC.cpio


Test :
------
cpio -itcvb < archive
cat archive | cpio -itv


Restaurer une archive :
-----------------------
cat 080514_ansiC.cpio | cpio -idv


Utiliser CPIO pour faire une copie :
------------------------------------
/rep/ansiC/ -print0 | cpio --null -pvd nouveau_rep


--Message édité par burk le 17-05-2008 à 18:39:10--
Azollyx
#3 Message posté le : 17-05-2008 à 18:06:40


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2032
Oui, j'avais vu la man page et je viens même de regarder l'info page.
Le souci vient du fait que tu mets des chemins absolus (qui commencent par /) dans ton archive. Car avec des chemins relatifs ça va tout seul (je viens de faire l'essai, la décompression se fait dans ce cas relativement au répertoire courant).
Si tu veux refaire tes archives, procède comme ça :
# création de l'archive
cd /rep/ansiC && find . | cpio -ocv > /media/sda3/bk_root/`date +%y%m%d`_ansiC.cpio
# extraction dans XXX
cd XXX && cpio -idv < /le/chemin/vers/080514_ansiC.cpio


Sinon, on trouvera bien une autre solution.

Mais tu ne m'as pas dit pourquoi vous utilisiez cpio et pas tar qui est très simple d'utilisation (et c'est surtout plus facile de trouver de l'aide pour tar).

--Message édité par Azollyx le 17-05-2008 à 18:07:09--


-------------------------------------
La force vaincra ! :D
burk
#4 Message posté le : 17-05-2008 à 18:37:27


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 17-05-2008
Nombre de messages : 3
Impressionant Quelle rapidité d'action, et de faite ca fonctionne parfaitement , purée j'aurais pu chercher longtemps, sacré 'find' .. Merci

J'ai fait une petite adaptation pour rester dans le répertoire d'origine

# création de l'archive
cd /rep_a_backuper/ && find . | cpio -ocv > /rep_ou_va_se_trouver_archive/`date +%y%m%d`_nom_de_la_nouvelle_archive.cpio && cd -

#extration
mkdir rep_destination && cd rep_destination && cpio -idv < ../080517_nom_de_la_nouvelle_archive.cpio && cd -


Beh tar est fait pour sauvegarder des fichiers en effet, là l'idée est de faire un backup incrémental d'un file system (sauf que pour le faire fonctionner j'ai choisis de travailler sur un répertoire plus légé), je crois que pour cela cpio est plus adapté, comme par exemple avec la commande :

find / -mount -ctime 1 | cpio -ocvB > archive.cpio


-ctime 1 permet de ne backupizer que les fichiers mofifié ces dernières 24 heures alors que -mount retire les autres medias montés que ceux de la racine du file system : )

Bien entendu, quand on maîtrise pas la commande find (ce qui est précisément mon cas) ca fé mal à la tête

.. Evidement, je me retrouves exactement avec le même problème au niveau de l'extraction dans un autre répertoire

--Message édité par burk le 17-05-2008 à 19:01:55--
Azollyx
#5 Message posté le : 17-05-2008 à 20:15:03


Naboo


Forum : Modérateur
Association : Président
Arrivé(e) le : 09-04-2006
Nombre de messages : 2032
Pour la commande find, elle est effectivement très complète... et sa man page par forcément évident à parcourir (en fait il faut mieux lire le début).
Comme ton problème est résolu, je te demanderais de cliquer sur le lien qui se trouve en haut à gauche (ou peut-être à droite)

Bonne continuation.

-------------------------------------
La force vaincra ! :D
burk
#6 Message posté le : 17-05-2008 à 20:27:03


Petit scarabée


Forum : Inscrit
Association :
Arrivé(e) le : 17-05-2008
Nombre de messages : 3