Estoy intentando rsync el directorio A de server1 con el directorio B de server2.
Sentado en el directorio A de server1, ejecuté los siguientes comandos.
rsync -av * server2::sharename/B
pero lo interesante es que sincroniza todos los archivos y directorios excepto .htaccess o cualquier archivo oculto en el directorio A. Cualquier archivo oculto dentro de los subdirectorios se sincroniza.
También probé el siguiente comando:
rsync -av --include=".htaccess" * server2::sharename/B
pero los resultados son los mismos.
Alguna idea de por qué los archivos ocultos del directorio A no se sincronizan y cómo solucionarlo. Me estoy ejecutando como usuario root.
Gracias
Respuestas:
Esto se debe al hecho de que, de
*
forma predeterminada, se expande a todos los archivos del directorio de trabajo actual, excepto a los archivos cuyo nombre comienza con un punto. Así,rsync
nunca recibe estos archivos como argumentos.Puede pasar
.
denotando directorio de trabajo actual arsync
:De esta manera
rsync
, buscará archivos para transferir en el directorio de trabajo actual en lugar de buscarlos en lo que*
expande.Alternativamente, puede usar el siguiente comando para
*
expandir a todos los archivos, incluidos aquellos que comienzan con un punto:shopt -s dotglob
Consulte también la página de manual de shopt .
fuente
rsync -avz [email protected]:/remote/path/. /destination/path
hace el trabajoPara cualquier persona que acaba de tratar a los directorios de sincronización entre los servidores (incluyendo todos los archivos ocultos) - por ejemplo, la sincronización
somedirA
en elsource-server
quesomedirB
en un servidor de destino - probar esto :Tenga en cuenta las barras al final de ambos caminos. ¡Cualquier otra sintaxis puede conducir a resultados inesperados!
Además, para mí es más fácil ejecutar
rsync
comandos desde el servidor de destino, porque es más fácil asegurarse de que tengo el acceso de escritura adecuado (es decir, es posible que deba agregarsudo
al comando anterior).Probablemente no hace falta decirlo, pero obviamente su usuario remoto también necesita acceso de lectura
somedirA
en su servidor de origen. :)fuente
.htaccess
archivo?-e ssh
especifica el método de conexión.Tuve el mismo problema.
Para mí, cuando hice el siguiente comando, los archivos ocultos no se rsync'ed
Pero cuando agregué las barras al final de las rutas, los archivos ocultos se sincronizaron.
Tenga en cuenta las barras al final de los caminos , ya que Brian Lacy dijo que las barras son la clave. No tengo la reputación de comentar sobre su publicación o lo habría hecho.
fuente
shopt -s dotglob
a su script antes del rsyncCreo que el problema se debe a la expansión del comodín de shell. Utilizar . en lugar de estrella.
Considere el siguiente contenido de directorio de ejemplo
La expansión comodín del shell traduce la lista de argumentos que obtiene el programa rsync
dentro
antes de que el comando comience a ejecutarse.
fuente
El
*
tell a rsynch a no sincronizar archivos ocultos. No debe omitirlo.fuente