
Tengo un script que se utiliza rsync
para recuperar archivos de un servidor remoto y luego procesarlos. Estas copias locales no se eliminan entre ejecuciones, por lo que rsync
solo debería tener que buscarlasnuevoarchivos. Sin embargo, parece que rsync
se descargan todos los archivos cada vez, incluso cuando ni la copia local en caché ni la copia del servidor han cambiado, y puedo entender por qué.
¿Existe algún argumento de línea de comandos rsync
que me ayude a diagnosticar por qué un archivo determinado se copia o no en esta ejecución? Lo he intentado -v
, pero no parece darme la información que necesito. Algo como:
> rsync --diagnose-why-files-copied remotehost:/remote/path ./local/path/
'remotehost:/remote/path/file1':
Destination file './local/path/file1' does not exist; copying.
'remotehost:/remote/path/file2':
Destination file './local/path/file2' exists...
Destination file size does not match source file size; copying.
'remotehost:/remote/path/file3':
Destination file './local/path/file3' exists...
File sizes match...
Destination file modification date does not match source file modification date; copying.
'remotehost:/remote/path/file4':
Destination file './local/path/file4' exists...
File sizes match...
File modification dates match...
No change detected; skipping.
> rsync -c --diagnose-why-files-copied remotehost:/remote/path2 ./local/path2/
'remotehost:/remote/path2/file1':
Destination file './local/path2/file1' does not exist; copying.
'remotehost:/remote/path2/file2':
Destination file './local/path2/file2' exists...
Destination file checksum does not match source file checksum; copying.
'remotehost:/remote/path2/file3':
Destination file './local/path2/file3' exists...
File checksums match...
No change detected; skipping.
Respuesta1
-ii
es lo que estaba buscando. La --itemize-changes
opción, abreviada -i
, hace que se imprima un mensaje de diagnóstico para cada archivo que se actualizó o modificó, identificando qué se hizo con él y por qué. Al especificar la opción dos veces, también se imprime el mensaje para los archivos que no se modifican en absoluto.