Côté serveur, on crée le squelette toutimg.html
, composé d’une seule ligne :
<?php echo join("\n",preg_files(_DIR_IMG, '.*')); ?>
Côté client, sur la machine qui doit recevoir la sauvegarde, on lance le script suivant, sur la ligne de commande :
SITE="http://www.monsite.tld"; for i in $(curl $SITE/?page=toutimg); do wget -x -nc $SITE/$i; done
A condition bien entendu d’avoir installé au préalable la commande wget
(http://fr.wikipedia.org/wiki/Wget), on récupère ainsi tout le contenu du répertoire IMG/
.
Les options de wget
ont été choisies de manière à recopier l’arborescence du répertoire (option -x
), et à ne pas télécharger plusieurs fois un document qu’on a déjà chargé (-nc
).
Discussions par date d’activité
6 discussions
ceux qui sont sous Windows trouveront des infos adaptées pour utiliser wget ici : https://builtvisible.com/download-your-website-with-wget/
SITE="http://www.monsite.tld" ; for i in $(curl $SITE/ ?page=toutimg) ; do wget -x -nc $SITE/$i ; done
j’ai essayé la commande sous windows mais j’ai un message d’erreur
je suis preneur de plus d’infos sur comment sauvegarder le dossier /IMG
j’ai un souci de documents manquants sur le ftp et présent en ligne
Répondre à ce message
j’essaie de sauvegarder le dossier /IMG sous windows mais j’ai un message d’erreur avec la ligne de commande
Dans ce cas tu peux remplacer $SITE par l’url de ton site.
désolé mais je suis vraiment nul avec ces lignes de commande
à la place de cette ligne
je mets l’url de mon site à chaque $SITE ?
désolé mais je suis vraiment nul avec ces lignes de commande
je remplace tous les $SITE par l’url de mon site de cette ligne de commande ?
SITE="http://www.monsite.tld"; for i in $(curl $SITE/?page=toutimg); do wget -x -nc $SITE/$i; done
Répondre à ce message
Cela fonctionne nickel. J’ai 2 petites questions :
Est-ce que cela signifie que tout humain ou machine allant à l’url toutimg.html peut télécharger le dossier IMG complet y compris ce qui est dans /protege ?
Quelle est la syntaxe pour exclure les documents dans /distant ?
merci
Répondre à ce message
Bonjour,
Dans mon répertoire IMG, quand je suis en Ftp, je ne vois pas toutes les images. Par ex, une image appelée « image de Marcel » apparait bien quand je suis en Ftp mais quand je la renomme " « image_de_Marcel », je ne la vois plus. C’est pourtant cette syntaxe qui est utilisée par Spip. Et par Ftp quand je vois le nombre de fichiers, il n’est décompté que les fichiers qui sont dans la 1re syntaxe de mon exemple.
Je ne sais pas où vont les fichiers de la seconde syntaxe.
Ce script me permettra de tout copier ? Même les fichiers que je ne vois pas par Ftp ?
Et si quelqu’un peut me dire comment visualiser TOUS les fichiers, même ceux avec underscore...
Merci de vos réponses.
Répondre à ce message
Au risque de passer pour un idiot : quel est l’avantage de cette technique par / à une simple copie de répertoire via FTP ?
JG
Récapitulons :
I. Avec un client FTP
à chaque fois qu’on veut copier IMG/ faire :
1. ouvrir un client (souvent graphique) ftp
2. sélectionner son serveur
3. sélectionner IMG/ sur le serveur et le copier vers son disque dur
fin
II. Avec la ligne de commande
- créer le squelette d’une ligne (une fois pour toutes)
- installer wget (une fois pour toutes)
à chaque fois qu’on veut télécharger IMG/ faire :
1. faire un alias dans son /.*sh.alias qui exécute la commande wget OPTIONS
fin
Donc une vraie économie :-)
La grosse différence, c’est que wget ne va pas retélécharger un document qu’il a déjà téléchargé.
Autre solution : lftp
Une solution ftp qui permet de faire un mirroir sans retélécharger les documents déjà téléchargés.
http://doc.ubuntu-fr.org/lftp
http://wiki.monserveurperso.com/wakka.php?wiki=MirroringFTP
Exemple de syntaxe :
lftp ftp://identifiant:mot_de_passe@site_de_connexion -e "set ftp:list-options -a ; mirror -e -x dossier_ignoré -x dossier_ignoré /emplacement_distant/ /emplacement_local ; quit"
Je viens de tester, çà a l’air ok.
Répondre à ce message
Le script correspond à un vrai besoin, merci
Chez moi, il a fallu installer ’wget’ et ’curl’ ; mais avec une bonne distribution linux (kubuntu) c’est vraiment simple.
Ensuite le défi c’est que les fichiers aillent se mettre dans le répertoire que l’on désire : idéalement chez moi : /home/user/public_html/IMG afin de repeupler convenablement le serveur mirroir que je fais tourner en local (c’est pratique pour les tests et me permet d’avoir une sauvegarde fonctionnelle en cas de difficulté avec le serveur).
wget ne permet pas de désigner le répertoire de destination (ou j’ai pas vu) donc je passe la commande ’cd /home/user/public_html/IMG’ avant celle indiquée dans l’article. Mais il me crée le répertoire /home/user/public_html/IMG/monsite.tld ... ce n’était pas le but ! En enlevant le -x de wget, il met tous les fichiers dans IMG, sans les placer dans les sous répertoires /doc, /pdf ... qui vont bien
help afin de pouvoir rapatrier les fichiers de IMG *au bon endroit*
Merci
Il fallait étudier les options de wget et trouver : -nH qui permet d’éviter de remettre le nom d’hote du site dans le répertoire de destination. Les commandes à passer deviennent donc :
cd /home/user/public_html/
SITE="http://www.monsite.tld"; for i in $(curl $SITE/?page=toutimg); do wget -x -nc -nH $SITE/$i; done
J’ai mis ses deux commandes chez moi à la fin d’un script de sauvegarde de la base de données utilisant
mysqldump
pour sauvegarder la base sur le serveur, puisscp
pour ramener le fichier sql en local, et enfinmysql
pour le réinstaller en local.Ainsi je dispose d’un miroir complet et opérationnel de mon site sur mon serveur local, comme backup et comme test pour les squelettes ...
Bonjour,
Pourrais tu transmettre l’intégralité de ton script ???
Merci
Voilà,
C’est pas optimisé parcequ’il faut encore rentrer tous les mots de passe au fur et mesure que nécessaire. Ca reste donc manuel mais asser simple à déclencher.
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |