¿Cómo podemos transferir los registros del contenedor en ejecución a otro servidor usando Rsysnc?

¿Cómo podemos transferir los registros del contenedor en ejecución a otro servidor usando Rsysnc?

Ya intenté publicar los registros en la máquina host (usando docker run -v src:/des) ahora quiero transferir los registros a un servidor diferente.

Comandos que he usado:

  • rsync -u -avze ssh fuente/* ejemplo.com:/des/logs

    rsync: Error al ejecutar ssh: No existe tal archivo o directorio (2) Error de rsync: error en el código IPC (código 14) en pipe.c(84) [remitente=3.0.9] rsync: writefd_unbuffered no pudo escribir 4 bytes en el socket [remitente]: Tubería rota (32) error de rsync: error en el código IPC (código 14) en io.c(1532) [remitente=3.0.9]

Ya revisé las rutas de origen y destino pero sigue diciendo lo mismo.


  1. Si el servidor host 1 puede comunicarse con el servidor 2, entonces el contenedor Docker que se ejecuta sobre el servidor 01 debería poder comunicarse con el servidor 2. (¿Es esta una afirmación correcta?)

  2. ¿Existe alguna forma de utilizar las utilidades de Linux? Podemos administrar los registros sin utilizar otras herramientas como Splunk.

Respuesta1

Su sintaxis es incorrecta, por eso recibe el mensaje de error:

“No such file or directory (2) rsync error”

La sintaxis correcta es:

$ rsync  <options>  /source host:/dest

P.ej

$ rsync -avz /source host:/dest

Si debe especificar un puerto personalizado para ssh, utilice comillas para esto, el ejemplo se muestra a continuación:

$ rsync -e "ssh -p port"  <options> /source host:/dest

Además, verifique la propiedad del directorio de origen; debería ser el usuario quien realiza rsync; de lo contrario, no se puede sincronizar.

información relacionada