Estoy usando rsync para realizar una copia de seguridad. Esta es mi línea de comando:
sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST
Esto funciona en su mayor parte. Sin embargo, hoy me encontré con un escenario en el que simplemente cambié los atributos de un archivo para hacerlo ejecutable. Por curiosidad, ejecuté rsync pero no mostró que el archivo se hubiera copiado en el destino.
El contenido del archivo es exactamente el mismo y este es el resultado estadístico:
Archivo: `Proyectos/simpleFlash.py' Tamaño: 706 Bloques: 8 Bloque IO: 4096 archivo normal Dispositivo: 802h/2050d Inodo: 56961 Enlaces: 1 Acceso: (0755/-rwxr-xr-x) Uid: (1000/pi) Gid: (1000/pi) Acceso: 2015-03-26 17:13:29.970428613 -0400 Modificar: 2015-02-17 00:16:44.558033934 -0500 Cambio: 2015-05-19 13:53:28.401164123 -0400 Nacimiento: -
Los mtimes son los mismos pero ctime es diferente. ¿Cómo hago para que rsync observe los cambios en los atributos del archivo, para archivos con el mismo mtime?
especificaciones: rsync 3.0.9 FS: ext4 núcleo de Linux: 3.18.11+
Respuesta1
Como se indica en la rsync(1)
página de manual:
Rsync encuentra archivos que deben transferirse mediante un algoritmo de "verificación rápida" (por defecto) que busca archivos que han cambiado de tamaño o en la hora de la última modificación. Cualquier cambio en los demás atributos conservados (según lo solicitado por las opciones) se realiza directamente en el archivo de destino cuando la verificación rápida indica que no es necesario actualizar los datos del archivo.
Esto significa que siempre que usted indique rsync
transferir los atributos, se actualizarán. Dijiste que el atributo que faltaba eran permisos, así que agrega -p
o --perms
a la línea de comando y listo.