Bonjour tout le monde,
Voila mon problème :
j'ai acces à un serveur en remote (Irix) et dessus il y a un site intranet qui comporte quelque chose comme 4To de données, tout confondu, et je souhaiterais juste copier du serveur vers mon client (Suse 9.3) l'arborescence complète mais uniquement les fichiers .htm et .html.
En gros ne copier que les pages webs sur lesquelles je vais bosser, sans avoir à me taper 4To de copie (surtout sur un HDD de 15Go :D) tout en gardant la structure du repertoire du site web.
j'ai fais un find . -name *.htm -type f, et il y a bien 35 000 fichiers, j'ai donc le chemin absolu et le nom des fichiers mais je ne sais rien faire de plus, alors si vous avez des choses à me proposer ça serais gentil.
Merci beaucoup.
# Tu as presque la solution !
Posté par Gyro Gearllose . Évalué à 1.
find . -name *.htm -type f -exec scp -r {} user@portable:chemin_de_destination \;
Je n'ai pas testé, mais ça devrait rouler, normalement....
Le -r passé à scp devrait recopier l'arborescence sur le PC de destination, il me semble....
[^] # Re: Tu as presque la solution !
Posté par Stéphane CHANDELIER . Évalué à 1.
alors afin de réduire le problème lié au copie distance, droit des fichiers etc, j'ai reproduit un bout de site sur mon client,
et j'ai fait ta commande un poil modifiée à savoir :
find . -name *.htm -type f -exec cp -r {] /srv/etc/ \;
le truc c'est que dans ce repertoire la, j'ai l'intégralité (je pense) des .htm du site mais SANS arborescence, ce qui est génant dans mon cas.
mais je vais reconsulter la commande cp, j'ai peu etre oublié un truc concernant les repertoires.
Merci quand même, on avance !
[^] # Re: Tu as presque la solution !
Posté par 태 (site web personnel) . Évalué à 3.
J'aurais eu tendance à mettre tous les fichiers dans un tar (les scp me claquent parfois entre les doigts quand certains fichiers ont des noms bizarres), à passer le tar à ssh et détarrer sur l'autre machine. Avec une ligne du style
tar cf - les_arguments | ssh moi@chezmoi tar xvf - -C /quelque/part/
où les_arguments serait le résultat du find. En gros avec
find . -name *.htm -type f | xargs tar cf - | ssh ...blabla
L'arborescence devrait être conservée et se retrouver dans /quelque/part/. je ne suis pas sur que ce soit exactement ça, mais l'esprit doit y être.
On peut éventuellement rajouter un j ou z pour compresser le tar et gagner de la bande passante (mais perdre du cpu...)
[^] # Re: Tu as presque la solution !
Posté par Ph Husson (site web personnel) . Évalué à 3.
1. Le Monsieur veut à la fois les html et htm donc tant qu'à faire ca donnerait
find . -name \*.htm -or -name \*.html -type f
(les \ ca permet que ca passe sur zsh, et sur bash d'eviter qu'il remplace par un nom de fichier du repertoire courant s'il existe)
2.Pourquoi "tar cf -", alors que "tar c" est strictement equivalent ? (oui je suis un flemmard je sais, mais pour 2 lettres tant qu'à faire :)
[^] # Re: Tu as presque la solution !
Posté par 태 (site web personnel) . Évalué à 2.
Aussi, il paraît que l'option -C n'est pas disponible dans toutes les implémentations de tar... Donc, prudence.
[^] # Re: Tu as presque la solution !
Posté par mururoa69 . Évalué à 2.
- mettre l'option p au tar pour conserver les propriétés
- pas d'options j ou z sur Irix; c'est pas du linux
- ma solution prend les .htm ET les .html
Il ne te reste plus qu'à faire un mix et tu aura une solution efficace et élegante.
[^] # Un poil plus compliqué
Posté par mururoa69 . Évalué à 1.
# find . \( -name "*.htm" -o -name "*.html" \) -type f -print > /tmp/liste
# tar cvpf /tmp/site.tar `cat /tmp/liste`
# gzip site.tar
Tu peux rajouter autant de -o -name que tu veux ( *.php par exemple ).
# Re...
Posté par LaBienPensanceMaTuer . Évalué à 2.
# Et rsync
Posté par KiKouN . Évalué à 3.
Ensuite un ptit:
rsync -av --files-from=list_source tonhost:/repertoire_copie
Avantages:
Tu n'as pas qu'un gros fichire à télécharger.
Tu n'as pas à rechercher quels fichiers tu as déjà télécharger
Tu peux reprendre le download quand tu veux
En plus, Ne pas oublier de relancer la commande une fois fini pour avoir les dernières versions du premier fichier que tu as télécharger.
Plus d'info: man rsync
[^] # Re: Et rsync
Posté par mururoa69 . Évalué à 0.
Moi je ne suis pas sûr du tout. Sous Solaris et Tru64 pas de rsync par défaut.
[^] # Re: Et rsync
Posté par Stéphane CHANDELIER . Évalué à 1.
rsync: opendir ./RCS failed: No such file or directory.
:D
# et Rsync
Posté par hervé Couvelard . Évalué à 2.
rsync -a(v)z --include=*.htm --include=*.html
c'est idiot comme idée ?
# Et bien !
Posté par Stéphane CHANDELIER . Évalué à 1.
Alors merci à tous ceux qui ont postés des choses, je relis tout et je commence les tests, je vous tiens au courant si j'ai le temps de faire les différentes choses que j'ai lu.
J'avoue ne pas tout avoir compris à tout, mais j'ai 8H pour comprendre
Merci encore, à ce midi / ce soir.
# pas mal ..
Posté par Stéphane CHANDELIER . Évalué à 1.
find . -name *.htm -o -name *.html | xargs tar -zcvf sitearchive.tar.gz
mais voila, comme de bien entendu, sur ce serveur, des gens se connecte et mettre a jour leur propre section du site avec ...FRONTPAGE (gloups) qui en plus de poluer avec des tonnes de _vti etc, accepte les ESPACES, et c'est la ou ça coince, toutes les pages bien 'construite' sans espace mais avec des _ passent impec dans le tar, par contre des qu'un espace est rencontré, la ligne en question n'est pas prise en compte par le tar : error..
alors si quelqu'un a une idée pour ne pas prendre en compte ces espaces, je suis prenneur, en attendant, j'y retourne.
Merci encore de votre aide..
[^] # Les espaces
Posté par mururoa69 . Évalué à 0.
find . \( -name "*.htm" -o -name "*.html" \) -type f | awk '{ print "\"" $0 "\"" }' | xargs tar zcvf truc.tar.gz
[^] # Re: Les espaces
Posté par Stéphane CHANDELIER . Évalué à 1.
find . -name *.htm -print0 | xargs -0 tar -zcvf archives.tar.gz
mais au final ça ne marchais pas, alors un collègue m'a donné THE solution que voiçi :
find . -name *.htm -o -name *.html -type f | cpio -ou | ( cd repouloncopie; cpio -id)
Ca copie l'intégralité des fichiers avec ou sans espace dans les noms et ca recréer l'arborescence avec ... et voillaaaaa !
[^] # Re: Les espaces
Posté par Stéphane CHANDELIER . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.