Copiar base de datos MySQL de un servidor a otro

Tengo un servidor en producción por allá en la nube y quiero tener otra réplica (asincrónica) de algunas bases de datos MySQL. Buscando la solución más sencilla y rápida llegue a este script que se ejecuta en el servidor de réplica y que trae la base de datos remota y la deja activa en el MySQL local.

ssh shelluser@server.remoto.com «mysqldump -uusuario -pclave123 basedatos | gzip -c1» | gunzip -c | mysql -uroot -ppassword basedatos

Los comandos ente comillas mysqldump -uusuario -pclave123 basedatos | gzip -c1 se ejecutan en el servidor remoto mediante la conexión ssh que debe poder realizar el usuario ‘shelluser’, para sacar por estándar output el dump compactado de la base de datos.

Localmente se recibe por estandar input con los comandos gunzip -c | mysql -uroot -ppassword basedatos, que descomprimen y ejecutan los comandos del dump en el mysql local contra la base de datos que se indica.

El gzip y el gunzip es opcional y lo que busca hacer es comprimir el tráfico que se transfiere mediante SSH, y solo sería necesario si la base que se está bajando es de cierto volumen.

Debug lighttpd magnet lua script

El servidor web lighttpd mediante su módulo magnet (mod_magnet) permite incorporar la funcionalidad del lenguaje lua para el manejo las peticiones al servidor.

La siguiente porción de código se puede incorporar al final del script lua para conocer cómo será recibida la petición para ser servida:

print(«>>>>> parts of the URI»)
print(«request.uri: » .. lighty.env[«request.uri»])
print(«uri.path: » .. lighty.env[«uri.path»])
print(«uri.path-raw: » .. lighty.env[«uri.path-raw»])
print(«uri.scheme: » .. lighty.env[«uri.scheme»])
print(«uri.authority: » .. lighty.env[«uri.authority»])
print(«uri.query: » .. lighty.env[«uri.query»])
print(«>> filenames, pathnames»)
print(«physical.path: » .. lighty.env[«physical.path»])
print(«physical.rel-path: » .. lighty.env[«physical.rel-path»])
print(«physical.doc-root: » .. lighty.env[«physical.doc-root»])

y la salida quedará guardada en el archivo /var/log/lighttpd/error.log