275aff1430
Los scripts del mirror (00-90) vivian solo en el disco. Van al repo; los datos que generan no (16 GB entre crawl, snapshot del origen y Joomla restaurado) -> .gitignore. Nuevo 91-repone-assets404.sh: repone los ficheros que el crawl no capturo porque se referencian SOLO desde CSS y el crawler seguia enlaces HTML (system.css, los fondos de fe_adulta_1, ratingstars.gif de K2). Salian como 404 en los logs de nginx del Hetzner. Descarga por HTTP desde el Joomla local aislado, nunca del filesystem -- mismo principio que el crawl, para no arrastrar los .php comprometidos del #183 -- y escanea PHP embebido antes de copiar a site/. Resultado sobre las 286 rutas unicas con 404 del log: 196 repuestas y verificadas en produccion (196/196 en 200 tras el rsync), 82 que dan 301->404 tambien en el origen (ya estaban rotas en la web original) y 8 rutas basura /%22/... de HTML mal formado. Refs #180 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
21 lines
1.0 KiB
Bash
21 lines
1.0 KiB
Bash
#!/bin/bash
|
|
set -u
|
|
echo "=== crontab rafa ==="
|
|
crontab -l 2>/dev/null | grep -iE 'docker|joomla|mirror' || echo "(nada relevante)"
|
|
echo "=== crontab root ==="
|
|
sudo -n crontab -l 2>/dev/null | grep -iE 'docker|joomla|mirror' || echo "(no accesible o nada)"
|
|
echo "=== /etc/cron.d ==="
|
|
grep -rliE 'docker (stop|kill)|joomla' /etc/cron.d /etc/cron.daily 2>/dev/null || echo "(nada)"
|
|
echo "=== procesos sospechosos ==="
|
|
ps -eo pid,etimes,cmd | grep -iE 'docker stop|joomla|mirror|watch |while ' | grep -v grep || echo "(ninguno)"
|
|
echo "=== docker context/info ==="
|
|
docker version --format 'Server={{.Server.Version}} OS={{.Server.Os}}' 2>/dev/null
|
|
echo "=== eventos: arranco el contenedor y escucho 60s ==="
|
|
timeout 65 docker events --filter container=joomla-mirror-web --format '{{.Time}} {{.Action}} from={{index .Actor.Attributes "execID"}}' &
|
|
EVPID=$!
|
|
sleep 1
|
|
docker start joomla-mirror-web >/dev/null
|
|
wait $EVPID
|
|
echo "=== estado final ==="
|
|
docker inspect joomla-mirror-web --format 'Status={{.State.Status}} Exit={{.State.ExitCode}}'
|