Dos preguntas sobre rsync: falla a mitad de xfer y registro

Dos preguntas sobre rsync: falla a mitad de xfer y registro

Estoy trabajando para implementar una solución de copia de seguridad de registros que dependerá del uso de rsync para mover datos de un servidor local a un servidor de registro remoto. Tenemos dos preocupaciones: la primera es que hasta ahora no he implementado ningún registro que deba realizarse. La página de manual para rsync es enorme y no estamos usando un servidor rsync, solo un rsync oncall para enviar datos desde el cliente (iniciado por el cliente) al servidor de almacenamiento.

Fuera de la cabeza de cualquiera, ¿existen opciones de registro para fallas durante la transferencia o algo así?

Además, debido a la naturaleza de cómo lo estamos implementando, el script de shell primero intenta hacer ping al servidor de respaldo local. Si el ping tiene éxito, carga los archivos. Sin embargo, si el ping no tiene éxito, se cargará en un servidor de respaldo georedundante. Esto deja un agujero si el servidor principal deja de funcionar a mitad del rsync. ¿Hay alguna forma de especificar un destino de copia de seguridad en caso de que se produzca un error durante la transferencia?

Respuesta1

No creo que rsync tenga opciones de conmutación por error integradas ni un registro de errores especial (aparte de lo que se imprime en stderr). Tiene --log-file=opciones --log-file-format=, pero se concentran en registrar qué archivos se actualizaron, no en fallas de conexión. Lo que recomendaría es en el lado del cliente, verificar el estado de salida de rsync y si es un número de error que indica un problema de conexión (parece que 10, 12 y 30 son los relevantes, pero las pruebas le darán una mejor idea) busque otro servidor accesible y vuelva a intentarlo. También puede capturar la salida stderr de rsync y registrarla directamente o escanearla en busca de errores reconocidos y resumirlos en su registro.

Si también desea iniciar sesión en el lado del servidor, escribiría un script contenedor que ejecute rsync normalmente ( rsync "$@"para pasar argumentos), luego verifique su estado de salida y lo registre. Asegúrese de que su secuencia de comandos no genere nada (a stdout o stderr), o puede confundir al cliente rsync remoto.

información relacionada