backup en HTML statique avec wget
Source: http://www.vincentliefooghe.net/content/archivage-sites-wordpress-drupal
https://swsblog.stanford.edu/blog/creating-static-copy-website
un site 100% statique en html/css/js, plutôt que de rester sur les CMS initiaux. Ceci a plusieurs avantages à mes yeux :
- sites plus rapides (nginx est assez doué pour ça)
- arrêt des mises à jour à faire sur les CMS
- suppression de PHP = moins de ressources mémoire consommée
- suppression de la base de données = moins de ressources
- pas de sauvegarde (j'ai une copie de l'archive en local sur mon PC et sur disque externe)
Penser à :
- faire une sauvegarde complète (surtout s'il y a i18n ou Global_redirect ou autre module qui joue sur les redirections)
- désactiver les modules "interactifs", du type contact, comment, ckeditor, captcha... + XMLsitemap
#!/bin/sh
#
echo -n "Destination directory : "
read DEST
echo -n "Site URL : "
read URL
wget -P $DEST -mpck --user-agent="" -e robots=off --wait 1 -E $URL
- -P : chemin (Path) complet pour sauvegarder le site
- -m : mode miroir
- -p : télécharge tous les éléments nécessaires (css, js, images)
- -c : continue le téléchargement en cas d'erreur
- -k : convertit les liens absolus en relatifs
- --user-agent : ignore le user-agent
- -e : exécute la commande
- --wait 1 : attente d'une seconde entre chaque requête (optionnel)
- -E : renomme les fichiers avec une extension .html
- $URL : URL du site à convertir
On saisit le répertoire de destination, puis l'URL, et on attend que wget fasse le boulot...
Il existe un module, Static, assez récent, qui effectue cette conversion - pour drupal 7 seul (pas drupal 6).
Résultat de tests avec drupal 6
sur iXe: des erreurs lors du wget + lors du FTP vers mon hébergeur. Des soucis sur des caractères exotiques, probablement du à l'absence de Transilateration et du fichier i18n.txt (retirer carrement les caractères exotiques) + ancienne version de PHP (?).
sur un site partiellement bilingue, avec i18n + Global_redirect + divers autres modules (sécurité, taxonomie...) -> site "cassé" (pas de réponse http, car tourne en boucle, et donne la page blanche).
un autre site, totalement bilingue est bien passé.
Vers le site statique de Anne (drupal 6), mon ancien drupal 6 (mais tout ce qui était caché n'a pas été récupéré - comme "tout le caché" était intégré à un livre, j'ai imprimé le livre entier en PDF).
Mise à jour (avril 2016)
Drupal a créé une page sur le sujet à https://www.drupal.org/node/27882
wget -q --mirror -p --html-extension -e robots=off --base=./ -k -P ./ http://example.com
S'il manque des fichiers (wget utilise robots.txt) alors ajouter l'option -e robots=off
wget récupère toutes les requetes de type chaine, par exemple pour les images en "?itok=qRoiFlnG". Pour effacer toutes ces chaines, faire : find -name "*.*\?*" | while read filename; do mv "$filename" "${filename%%\?*}"; done
site de iXe
Liens absolus en dur (corrigés sur le drupal 6) :
-
le bloc de présentation des collection (liens absolus en dur)-> corrigé sur le drupal 6. -
Page d'acceuil: téléchargement du catalogue + Pour vous abonner à la Lettre iXe, pour nous écrire… + liens des 2 images livres
+ "devenez ami de ixe" Pour adhérer, contactez-nous!
-> corrigé sur le drupal 6. -
bloc du bas (crédits, contact ... csg)
note Liste des librairies donne un 404 => retiré -
liens de la page iXe