Côté serveur, on crée le squelette toutimg.html, composé d’une seule ligne :
Côté client, sur la machine qui doit recevoir la sauvegarde, on lance le script suivant, sur la ligne de commande :
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).



Vos commentaires
# Le 23 février 2007 à 15:20, par jean-guy
En réponse à : Sauvegarder le répertoire
IMG/avec wgetAu risque de passer pour un idiot : quel est l’avantage de cette technique par / à une simple copie de répertoire via FTP ?
JG
# Le 23 février 2007 à 19:43, par rzawutang44
En réponse à : Sauvegarder le répertoire
IMG/avec wgetRé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 :-)
# Le 20 mai 2007 à 19:37, par Fil
En réponse à : Sauvegarder le répertoire
IMG/avec wgetLa grosse différence, c’est que wget ne va pas retélécharger un document qu’il a déjà téléchargé.
# Le 24 juin 2008 à 22:21, par herve
En réponse à : Sauvegarder le répertoire
IMG/avec wgetAutre 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 27 mai 2007 à 00:09, par martin
En réponse à : Sauvegarder le répertoire
IMG/avec wgetLe 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
# Le 14 juillet 2007 à 21:37, par liver
En réponse à : Sauvegarder le répertoire
IMG/avec wgetIl 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; doneJ’ai mis ses deux commandes chez moi à la fin d’un script de sauvegarde de la base de données utilisant
mysqldumppour sauvegarder la base sur le serveur, puisscppour ramener le fichier sql en local, et enfinmysqlpour 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 ...
# Le 25 octobre 2007 à 21:36, par ?
En réponse à : Sauvegarder le répertoire
IMG/avec wgetBonjour,
Pourrais tu transmettre l’intégralité de ton script ???
Merci
# Le 30 octobre 2007 à 23:52, par livier
En réponse à : Sauvegarder le répertoire
IMG/avec wgetVoilà,
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.
#! /bin/sh
echo "-----------------------------------------------------"
echo "Sauvegarde de Monsite "
echo "-----------------------------------------------------"
echo
echo
echo "Sauvegarde de la base de données"
echo "En ligne > Seveur local"
echo "----------------------------------------------"
echo
echo "Entrer le mot de passe mysql@monsite"
read -s secret
echo "DEBUT de l'exécution DU SCRIPT "
echo "----------------------------------------------"
echo
echo "Sauvegarde de la base en ligne "
ssh admin@monsite.org "mysqldump --add-drop-table --add-locks -u adminmysql -p$secret monsite_org_-_spip > /home/monsite/MySQL_monsite.sql"
echo "MySQL_monsite.sql cree en ligne "
echo "----------------------------------------------"
echo
echo "Transfert du fichier sql en local"
echo " Donner le mot de passe de admin@monsite.org"
scp -pC admin@monsite.org:/home/monsite/MySQL_monsite.sql /home/monsite/
echo "Fin du transfert de la base"
echo "----------------------------------------------"
echo
echo "Sauvegarde du repertoire IMG"
echo "En ligne > Serveur local"
cd /home/monsite/www
# wget recupere les fichier 1 a 1
# -x force la creation de repertoire si necessaire
# -nc ne pas recharger un fichier deja present a la destination
#-nv no-verbose (erreurs et info de base seulement affichees) / -q quiet (pas de sortie)
# -nH --no-host-directories Desactive la generation de la racine des repertoires avec le nom de l'hote.
SITE="http://monsite"; for i in $(curl $SITE/?page=toutimg); do wget -x -nc -nH $SITE/$i; done
echo "Fin recuperation repertoire IMG "
echo "----------------------------------------------"
echo
echo "Saisir n'importe quoi pour continuer"
read var
echo
echo "Repeuplement de la base locale "
mysql -u root MySQL_monsite < /home/monsite/MySQL_monsite.sql"
echo "Fin du repeuplement de la base locale "
echo -n "Vous aviez écrit :" $var
echo
echo "-----------------------------------------------------"
echo "Sauvegarde de monsite terminée"
echo "-----------------------------------------------------"
echo
Répondre à ce message