rsync admite IPV6

He realizado un microservicio de recuperación ante desastres antes, llamando a los comandos de Linux en Java para sincronizar archivos. El negocio original admite la sincronización de archivos en formato IPV4. Más tarde, para adaptarme al entorno IPV6, verifiqué los comandos de sincronización relevantes y todos los soportes expresados, pero no importa cómo lo llame en mi propio microservicio, descubrí que los archivos podían no estar sincronizado.

原有命令:command =“rsync -rpoguPv —delete-e  \”ssh -i $key_path \”$src_dir $dst_dir “

Después de buscar información, se encuentra que se deben agregar dos símbolos de corchetes [] antes y después de IPV6, pero aún no puede tener éxito en los microservicios. Al final, después de navegar por cientos de publicaciones en Baidu, descubrí que el comando linux es un carácter de escape para los corchetes. Si se llama directamente a través del comando java, los dos símbolos se escaparán después de pasar al sistema linux. , por lo que el sistema ejecuta el comando Cuando se encuentra que no coincide, no se puede obtener el servidor correspondiente a la dirección IP que se necesita sincronizar.
Cómo hacerlo, antes de que el comando Java invoque el script de ejecución, agregue una cadena a los corchetes agregados, realice un escape de Linux y agregue dos barras inclinadas dobles, de la siguiente manera:

dstPath.apend(“\\[”+IP地址+“\\]”);

De esta forma, si agrega el atributo -6 al comando original, puede llamarlo con confianza.

修改后命令:
command =“rsync -rpoguPv6 —delete-e  \”ssh -i $key_path \”$src_dir $dst_dir “

No quiero presentar demasiado sobre el comando rsync, hay muchos Baidu.

Supongo que te gusta

Origin blog.csdn.net/PhilipJ0303/article/details/88957805
Recomendado
Clasificación