Différences entre versions de « Dupliquer un site »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (s/apinc/hebergeur/)
 
(10 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
Votre hébergeur vous propose un accès FTP, et malheureusement pas de rsync?
 
Votre hébergeur vous propose un accès FTP, et malheureusement pas de rsync?
 +
 +
== Avec wget ==
  
 
Pour rapatrier votre site en ligne de commande:
 
Pour rapatrier votre site en ligne de commande:
 
* Créez un <tt>~/.netrc</tt>:
 
* Créez un <tt>~/.netrc</tt>:
 
  machine ftp.hebergeur.org login monlogin password monmotdepasse
 
  machine ftp.hebergeur.org login monlogin password monmotdepasse
 +
* Appliquer les bonnes permissions:
 +
chmod 600 ~/.netrc
 
* Puis utilisez wget:
 
* Puis utilisez wget:
 
  wget -r ftp://ftp.hebergeur.org
 
  wget -r ftp://ftp.hebergeur.org
  
On peut aussi utiliser gFTP, et il paraît que <tt>lftp</tt> permet de faire des trucs sympa aussi.
+
Note: ne pas utiliser <code>-c/--continue</code> pour mettre à jour la copie: <code>-c</code> permet de reprendre un téléchargement interrompu, et non pas de mettre un fichier à jour. Vous devez relancer la même commande, qui effectuera à nouveau un téléchargement complet du site.
 +
 
 +
D'autres outils permettent d'utiliser la date de dernière modification et la taille du fichier comme heuristique, afin d'éviter un téléchargement superflu.
 +
 
 +
== Autres ==
 +
 
 +
On peut aussi utiliser gFTP. <tt>lftp</tt> permet de faire des trucs sympa aussi :
 +
* complétion
 +
* rm -r <répertoire>
 +
* mirror -R source dest ( -R --reverse      reverse mirror <--> put files ).
 +
* Sur certains serveurs qui masquent les fichiers '.' il faut taper d'abord:
 +
set ftp:list-options -a
 +
* <code>-e</code>: supprimer les fichiers présents uniquement en local
 +
* Si même nom, ne pas préciser :
 +
mirror -R rep
 +
mirror -R .
 +
* Lancer une commande en local :
 +
!ls
 +
 
 +
 
 +
Enfin une recherche chez packages.debian.org sur 'mirror' présente 'mirror', 'fmirror' et 'ftpmirror',
 +
 
 +
 
 +
Exemple de session:
 +
$ lftp ftp.ouvaton.org
 +
lftp ftp.ouvaton.org:~> user cliss21
 +
Password: *****
 +
lftp cliss21@ftp.ouvaton.org:/> mirror html/
 +
Total: 34 directories, 740 files, 0 symlinks
 +
New: 740 files, 0 symlinks
 +
 
 +
Ou en une ligne, sur un autre exemple:
 +
 
 +
# lftp clisscoop@ftp.ouvaton.org -e "mirror html/ www/"
 +
Password:
 +
Total: 170 directories, 1186 files, 0 symlinks
 +
New: 1186 files, 0 symlinks
 +
 
 +
Ou encore:
 +
touch ~/.netrc
 +
chmod 600 ~/.netrc
 +
echo "machine ftp.monservice.tld login moncompte password monmotdepasse" >> ~/.netrc
 +
lftp moncompte@ftp.monservice.tld -e 'set ftp:list-options -a; mirror -e . copy/; exit'
 +
 
 +
Si on relance un <code>mirror</code>, lftp tente de ne télécharger que ce qui a été modifié.
 +
 
 +
== Gestion des droits avec suPHP ==
 +
 
 +
Si vous utilisez suPHP, je propose:
 +
chown -R user: .
 +
find -type f -print0 | xargs -0 chmod 644
 +
find -type f -name "*.php*" -print0 | xargs -0 chmod 600

Version actuelle datée du 29 juin 2010 à 10:05

Votre hébergeur vous propose un accès FTP, et malheureusement pas de rsync?

Avec wget

Pour rapatrier votre site en ligne de commande:

  • Créez un ~/.netrc:
machine ftp.hebergeur.org login monlogin password monmotdepasse
  • Appliquer les bonnes permissions:
chmod 600 ~/.netrc
  • Puis utilisez wget:
wget -r ftp://ftp.hebergeur.org

Note: ne pas utiliser -c/--continue pour mettre à jour la copie: -c permet de reprendre un téléchargement interrompu, et non pas de mettre un fichier à jour. Vous devez relancer la même commande, qui effectuera à nouveau un téléchargement complet du site.

D'autres outils permettent d'utiliser la date de dernière modification et la taille du fichier comme heuristique, afin d'éviter un téléchargement superflu.

Autres

On peut aussi utiliser gFTP. lftp permet de faire des trucs sympa aussi :

  • complétion
  • rm -r <répertoire>
  • mirror -R source dest ( -R --reverse reverse mirror <--> put files ).
  • Sur certains serveurs qui masquent les fichiers '.' il faut taper d'abord:
set ftp:list-options -a
  • -e: supprimer les fichiers présents uniquement en local
  • Si même nom, ne pas préciser :
mirror -R rep
mirror -R .
  • Lancer une commande en local :
!ls


Enfin une recherche chez packages.debian.org sur 'mirror' présente 'mirror', 'fmirror' et 'ftpmirror',


Exemple de session:

$ lftp ftp.ouvaton.org
lftp ftp.ouvaton.org:~> user cliss21
Password: *****
lftp cliss21@ftp.ouvaton.org:/> mirror html/
Total: 34 directories, 740 files, 0 symlinks
New: 740 files, 0 symlinks

Ou en une ligne, sur un autre exemple:

# lftp clisscoop@ftp.ouvaton.org -e "mirror html/ www/"
Password:
Total: 170 directories, 1186 files, 0 symlinks
New: 1186 files, 0 symlinks

Ou encore:

touch ~/.netrc
chmod 600 ~/.netrc
echo "machine ftp.monservice.tld login moncompte password monmotdepasse" >> ~/.netrc
lftp moncompte@ftp.monservice.tld -e 'set ftp:list-options -a; mirror -e . copy/; exit'

Si on relance un mirror, lftp tente de ne télécharger que ce qui a été modifié.

Gestion des droits avec suPHP

Si vous utilisez suPHP, je propose:

chown -R user: .
find -type f -print0 | xargs -0 chmod 644
find -type f -name "*.php*" -print0 | xargs -0 chmod 600