remoto - Cómo forzar a rsync para crear la carpeta de destino
rsync ssh (3)
Ejemplo:
rsync /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln
Mi problema principal es que la carpeta / tmp / fol1 no existe en la máquina remota.
¿Qué argumentos puedo usar para forzar a rsync a crear este árbol?
Me encontré con el mismo problema hoy y encontré la solución here .
Usted puede hacer:
rsync -avR foo/bar/baz.c remote:/tmp/
o:
rsync -avR somedir/./foo/bar/baz.c remote:/tmp/
para crear /tmp/foo/bar/baz.c en la máquina remota.
Consulte la sección --relative/-R
de man rsync
para obtener más detalles.
Puede hacer esto a través de bash y abrir un túnel ssh para hacer la estructura de archivos que necesita para luego sincronizar los datos. ¿Cambiarán estas carpetas temporales cada vez que se realice esta sincronización? Por ejemplo, ¿es para cada día de la semana?
ssh user@address
mkdir -p tmp/fol1
rsync avz /tmp/fol1/fol2/fol3/foln user@addr:/tmp/fol1/fol2/fol3/foln
fi
Un truco para hacerlo es usar el parámetro --rsync-path
con el siguiente valor:
--rsync-path="mkdir -p /tmp/fol1 && rsync"
Con --rsync-path puede especificar qué programa se utilizará para iniciar rsync en la máquina remota y se ejecuta con la ayuda de un shell.