Impulsa IT Solutions<p><strong>Hacer una copia o espejo de un sitio usando wget</strong></p><p>A veces uno necesita hacer una copia completa de un sitio web para acceso fuera de línea, o también para convertir un sitio dinámico a estático, especialmente cuando un cliente tiene un sitio web en una versión obsoleta de un manejador de contenido como WordPress o Joomla en una versión muy vieja y corriendo una versión de PHP vulnerable. Esto es especialmente útil cuando el sitio web no requiere ser modificado. Esto trae como beneficio un sitio más veloz y más seguro, ya que un sitio estático HTML se envía tal cual al navegador de las personas usuarias, sin tener que ejecutar código PHP potencialmente vulnerable.</p><p>Con la herramienta de línea de comandos <code>wget</code> es posible de forma muy sencilla descargar un sitio web entero:</p><pre><code>wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org</code></pre><p>Explicación de algunos de los argumentos:</p><ul><li><code>--mirror</code> – Descarga recursivamente y hace otros ajustes relacionados, implica: <code>-r -N -l inf --no-remove-listing</code>.</li><li><code>--convert-links</code> – convierte enlaces y referencias en HTML como CSS, para poder ser vistas fuera de línea.</li><li><code>--adjust-extension</code> – Ajusta la extensión de los objetos html o css según el tipo de datos</li><li><code>--page-requisites</code> – Descarga objetos enlazados como hojas de estilo CSS e imágenes requeridos para ver el sitio fuera de línea.</li><li><code>--no-parent</code> – No subir a directorios superiores en el URL, útil cuando se está haciendo espejo de un URL específico como <a href="http://example.org/sub-directorio/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">http://</span><span class="">example.org/sub-directorio/</span><span class="invisible"></span></a></li></ul><p>Ejemplo de conversión de sitio WordPress en un sistema cPanel:</p><pre><code># Entrar como usuario a shell, para no ejecutar comandos como root<strong>su - user -s /bin/bash</strong># Crear directorio de descargas<strong>mkdir download && cd downloadwget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org</strong># Hacer un respaldo del directorio raíz del sitio web<strong>cd ..</strong><strong>mv public_html public_html~</strong># Colocar la copia descargada en línea<strong>mv download/example.org public_html</strong># Probar sitio, ajustar detalles y opcionalmente borrar base de datos luego de hacer respaldo# Con esto el sitio dinámico ha sido convertido a estático.</code></pre><p>Referencias:</p><ul><li>GNU wget manual: <a href="https://www.gnu.org/software/wget/manual/wget.html" rel="nofollow noopener" target="_blank">https://www.gnu.org/software/wget/manual/wget.html </a></li><li>Make Offline Mirror of a Site using wget: <a href="https://www.guyrutenberg.com/2014/05/02/make-offline-mirror-of-a-site-using-wget/" rel="nofollow noopener" target="_blank">https://www.guyrutenberg.com/2014/05/02/make-offline-mirror-of-a-site-using-wget/</a></li></ul><p><a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/linux/" target="_blank">#Linux</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/mirror/" target="_blank">#mirror</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/static-site/" target="_blank">#staticSite</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/sysadmin/" target="_blank">#sysadmin</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/tips/" target="_blank">#tips</a> <a rel="nofollow noopener" class="hashtag u-tag u-category" href="https://www.impulsait.com/tag/wget/" target="_blank">#wget</a></p>