Cuanto más uso, rsync
más me doy cuenta de que es una navaja suiza de transferencia de archivos. Hay tantas opciones Hace poco descubrí que puedes ir --remove-source-files
y eliminará un archivo de la fuente cuando se haya copiado, lo que lo convierte en un movimiento más en lugar de copiar el programa. :)
¿Cuáles son tus pequeños consejos y trucos favoritos de rsync?
--delete-before
por ejemplo), se usa el antiguo comportamiento de "lista de compilación primero", ya que es necesario para que estas opciones funcionen correctamente, así que si no ve este comportamiento, verifique si Se sabe que otras opciones que está utilizando impiden que sea posible. Esto puede ser útil si está utilizando rsync de forma interactiva en un árbol grande y desea forzar el escaneo inicial para que la salida--progress
sea precisa (es decir, el recuento de "objetos para comparar" nunca aumentará ya que no se encontrarán nuevos objetos después del escaneo inicial )Utilizando
--link-dest
para crear copias de seguridad basadas en instantáneas de uso eficiente del espacio, por lo que parece tener múltiples copias completas de los datos respaldados (uno para cada ejecución de copia de seguridad) pero los archivos que no cambian entre ejecuciones están vinculados en lugar de crear nuevas copias ahorrando espacio.(en realidad, sigo usando el método
rysnc
-seguido por-cp -al
que logra lo mismo, consulte http://www.mikerubel.org/computers/rsync_snapshots/ para ver un descuido antiguo pero muy bueno de ambas técnicas y cuestiones relacionadas)La principal desventaja de esta técnica es que si un archivo está dañado debido a un error de disco, es igual de corrupto en todas las instantáneas que se vinculan a ese archivo, pero también tengo copias de seguridad fuera de línea que lo protegerían en gran medida. La otra cosa a tener en cuenta es que su sistema de archivos tiene suficientes inodes o se quedará sin ellos antes de que realmente se quede sin espacio en disco (aunque nunca he tenido un problema con los valores predeterminados ext2 / 3).
Además, nunca olvides lo muy útil
--dry-run
para un poco de paranoia saludable, especialmente cuando estás usando las--delete*
opciones.fuente
Si necesita actualizar un sitio web con algunos archivos enormes a través de un enlace lento, puede transferir los archivos pequeños de esta manera:
rsync -a --max-size = 100K / var / www / there: / var / www /
luego haga esto para los archivos grandes:
rsync -a --min-size = 100K --bwlimit = 100 / var / www / there: / var / www /
rsync tiene muchas opciones útiles para sitios web. Desafortunadamente, no tiene una forma integrada de detectar actualizaciones simultáneas, por lo que debe agregar lógica a los scripts cron para evitar la superposición de escrituras de archivos grandes.
fuente
Uso la opción --existente cuando trato de mantener un pequeño subconjunto de archivos de un directorio sincronizado a otra ubicación.
fuente
--rsh
es mio.Lo he usado para cambiar el cifrado en ssh a algo más rápido (
--rsh="ssh -c arcfour"
) también para configurar una cadena dessh
s (recomiendo usarlo conssh-agent
) para sincronizar archivos entre hosts que no pueden hablar directamente. (rsync -av --rsh="ssh -TA userA@hostA ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/
)fuente
Cuando se usa esta opción, rsync se detendrá después de T minutos y saldrá. Creo que esta opción es útil cuando se sincroniza una gran cantidad de datos durante la noche (horas no ocupadas) y luego se detiene cuando es hora de que las personas comiencen a usar la red, durante el día (horas ocupadas).
Esta opción le permite especificar a qué hora detener rsync.
El modo de lote puede usarse para aplicar el mismo conjunto de actualizaciones a muchos sistemas idénticos.
fuente
at
para matar el proceso?Si se pregunta qué tan avanzado ha llegado un rsync de ejecución lenta, y no usó -v para enumerar los archivos a medida que se transfieren, puede averiguar qué archivos tiene abiertos:
en un sistema que tiene / proc
Por ejemplo, rsync me colgó en este momento, a pesar de que el sistema remoto parecía tener mucho espacio libre. Este truco me ayudó a encontrar el archivo inesperadamente grande que no recordaba, que no cabía en el otro extremo.
También me dio información un poco más interesante: el otro extremo aparentemente se rindió, ya que también había un enlace de socket roto:
fuente
--archive
es una opción estándar (aunque no la predeterminada) para trabajos similares a copias de seguridad, lo que garantiza que la mayoría de los metadatos de los archivos de origen (permisos, propiedad, etc.) se copien.Sin embargo, si no desea usar eso, a menudo aún querrá incluirlo
--times
, lo que copiará los tiempos de modificación de los archivos. Esto hace que el próximo rsync que se ejecuta (suponiendo que lo esté haciendo repetidamente) sea mucho más rápido, ya que rsync compara los tiempos de modificación y omite el archivo si no ha cambiado. Sorprendentemente (al menos para mí) esta opción no es la predeterminada.fuente
Definitivamente, el
--exclude-from
que más uso es el que le permite especificar un archivo que contiene cosas que se excluirán.También me parece
--chmod
muy útil porque te permite asegurarte de que los permisos terminen en un estado deseable incluso si tu fuente está en mal estado.fuente
--backup-dir =
date +%Y.%m.%d
--delete Estamos borrando pero haciendo una copia ... por si acasofuente
El mío es
--inplace
. Funciona de maravilla cuando el servidor de copias de seguridad ejecuta ZFS o btrfs y realiza instantáneas nativas.fuente
Por supuesto, también hay algo
--delete
que elimina cosas del objetivo que no se pueden encontrar en la fuente.fuente
cwrsync - Rsync para Windows http://www.itefix.no/i2/node/10650
Esta versión incluye OpenSSH para que pueda transferir archivos a través de un canal seguro.
fuente
En caso de interrupciones
Para limitar el ancho de banda: bueno para copiar archivos grandes, directorios
fuente
bwlimit
? bits por segundo, bytes por segundo?Si tiene rsync configurado como daemon en el servidor, puede explorar los módulos compartidos como cualquier otra lista de directorios. Luego puede ver qué rutas están disponibles y cuáles no.
fuente
cuando uso GlusterFs tenemos un cuello de botella con archivos T con tamaño cero, para la sincronización entre el ladrillo bloqueado o la réplica que debemos usar
--min-size=1
para no sincronizar el archivo vacío del servidor bloqueadofuente