2011-03-23 12 views
5

Uso un generador de sitios web estáticos que genera todos los archivos en el sitio web en cada ejecución. Después de generar los archivos, uso rsync para copiar el contenido en su lugar.Cómo hacer que rsync conserve marcas de tiempo de archivos sin cambios

Para permitir un mejor almacenamiento en caché, me gustaría que rsync no modifique la marca de tiempo de esos archivos en el destino que no han cambiado. ¿Es posible?

EDITAR: Para dejar en claro, las marcas de tiempo de todos los archivos de origen siempre son más nuevas que las marcas de tiempo de los archivos de destino.

Respuesta

9

La opción -c parece hacer lo que quiero. La pena de rendimiento no es un problema en mi caso.

+0

-t será mejor en su caso – Pungs

+0

No lo creo, porque las marcas de tiempo de los archivos de origen son siempre más nuevas que las de los archivos de destino aunque el contenido de los archivos no haya cambiado. –

+2

La opción -c funciona. Una cosa a tener en cuenta: si no desea que los tiempos de modificación cambien, asegúrese de no utilizar la opción -a, ya que invoca silenciosamente -t, lo que significa "conservar los tiempos de modificación", es decir, "sobrescribir los tiempos de modificación de los archivos remotos con los tiempos de modificación de los archivos locales ". – ishmael

0

¿Has probado las banderas -t y -E?

EDITAR: Uh ... o ¿la marca de tiempo de los archivos de origen cambia cada vez que regenera el sitio web, incluso si los archivos no han cambiado?

+0

Sí, la marca de tiempo del archivo de origen siempre se cambia al "ahora". –

+0

En ese caso, intente utilizar --size-only para omitir los archivos nuevos (suponiendo que sean del mismo tamaño) ... es un poco peligroso, sin embargo, puede tener consecuencias no deseadas. Usarlo en conjunción con -c es un poco mejor, pero es lento. – MarcB

Cuestiones relacionadas