24 votos

Uso de rsync para hacer copias de seguridad

Actualmente hago una copia de seguridad del contenido de un disco duro externo A (1) borrando todo lo que hay en el disco duro externo de destino B y (2) copiando todo de A a B (en Finder). El disco duro externo solo contiene "datos básicos" (carpetas, imágenes, vídeos, documentos, etc.), nada del otro mundo.

Pero con todas las increíbles herramientas gratuitas que existen por ahí no he podido encontrar una decente para hacer copias de seguridad (se aceptan sugerencias).

Quiero automatizar esto. Después de algunas búsquedas, parece que puedo utilizar rsync . Quiero entonces automatizar esto usando rsync para evitar copiar archivos que ya están en el disco duro de destino (por supuesto, si se ha hecho un cambio, quiero actualizar el archivo/carpeta; lo mismo con los archivos/carpetas borrados o los nuevos; la idea es imitar lo que suelo hacer manualmente con Finder).

Llegué a este punto

rsync -av --progress --delete /Volumes/A/ /Volumes/B

Ahora el registro está lleno de archivos cuyo nombre empieza por . o ._ o incluso ._. . ¿Son necesarias?

Pregunta

Cómo puedo copiar sólo los archivos que importan, dejando todos los que no importan. Por ejemplo, si tengo photo.png Yo esperaría copiar photo.png no ._photo.png o muchos archivos.

Qué --exclude o --exclude-from ¿puede utilizarse con seguridad en un Mac? Quizá una buena regla sea "sólo copiar todo lo que muestra el Finder", que es lo que yo copiaría si pasara manualmente por todas las carpetas.

 Pregunta extra

Es -av --progress --delete ¿suficiente? ¿Estoy cometiendo un delito o arriesgando algunos datos? ¿Qué opciones utilizaría?

Por favor, respalde su respuesta con algunos argumentos, se lo agradecería.

Estoy buscando una manera de automatizar rsync que parece bastante potente y de uso gratuito.

26voto

Steve Evans Puntos 155

Para una máxima seguridad, copie todo

El más seguro opción es copiar todo incluyendo los archivos de metadatos invisibles.

Los archivos suelen existir por una razón y, a medida que el software cambia, también lo harán la existencia, el propósito y el contenido de estos archivos de metadatos. Copiar todo reducirá la carga de mantenimiento y ofrecerá la tranquilidad de que no se está perdiendo nada.

El archivo de registro creado por rsync estará técnicamente involucrado por la propia naturaleza de rsync siendo una herramienta de línea de comandos. Considere la posibilidad de presentar una salida ordenada, filtrada por los metadatos, y tal vez incluso codificada por colores para que el usuario la compruebe. Se podría hacer esto con una amplia gama de herramientas y lenguajes de scripting. Por favor, haga más preguntas aquí en Pregunta diferente y en StackOverflow si necesita ayuda con este enfoque.

Borrar los últimos recursos de OS X y copiarlos

En cuanto a la rsync banderas, echa un vistazo a la pregunta La forma más rápida y segura de copiar datos masivos de un disco externo a otro . En esta pregunta, se utilizan y explican algunas banderas adicionales:

sudo rsync -vaE --progress --delete-after /Volumes/SourceName /Volumes/DestinationName

En esta situación, el E garantizará que se copien las bifurcaciones de recursos y otras propiedades específicas de Mac.

Puede considerar --delete-after para evitar el borrado hasta que la copia se haya completado; tenga en cuenta que este enfoque requerirá potencialmente una unidad de destino del doble de tamaño que la de origen.

Posibles exclusiones

Una respuesta a una pregunta relacionada, ¿Cómo puedo omitir los archivos de renderización de FCPX de una copia de seguridad de Time Machine? , proporcionó un enlace útil de Archivos y carpetas de OS X que pueden excluirse de la mayoría de las copias de seguridad . Este enlace proporciona una lista práctica de patrones de archivos, carpetas y rutas que podría excluir.

Incluir archivos dot

Hay buenas razones para hacer copias de seguridad de los archivos que empiezan por puntos, .* archivos coincidentes.

Algunos programas guardan las preferencias, la configuración y otra información de valor en carpetas situadas en la parte superior de la carpeta del usuario, en carpetas prefijadas con puntos invisibles. Ejecutar ls -la ~/ revelará estas carpetas y archivos.

Si algún usuario utiliza o tiene un software que a su vez utiliza un software de control de versiones, asegúrese de hacer una copia de seguridad de los archivos de puntos. Los programas informáticos como subversión y git ambos almacenan información crítica dentro de sus carpetas de puntos. Estas carpetas ocultas pueden estar dispersas en su sistema de archivos, dondequiera que se compruebe un proyecto.

Spotlight y el acceso al disco

Spotlight es el servicio de búsqueda de OS X. Spotlight utiliza el mdworker proceso de indexación y actualización del catálogo de búsqueda. Si le preocupa la posible corrupción del disco o la lentitud de las copias, desactivar mdworker mientras se ejecuta rsync puede ayudar. Personalmente, dejo Spotlight funcionando mientras se ejecutan grandes rsync transferencias.

6voto

rhettg Puntos 1452

No estoy del todo satisfecho con las respuestas actuales, pero intentaré cubrir aquí un poco las posibilidades que he visto en la web tratando de encontrar un buen montaje para rsync .

Y, por cierto, si uno está interesado en la Máquina del Tiempo como copias, hay rsnapshot . Y también hay Unison para las sincronizaciones bidireccionales. Además, hay algunos GUIs, como Utilidad de copia de seguridad y arRsync no es exactamente lo que buscaba, pero puede que le sirvan a alguien.

En primer lugar, mi única intención era duplicar las fotos y los vídeos, por lo que no era necesaria una copia exacta, de ahí que no haya que preocuparse demasiado . De hecho la mayoría de mis dudas eran si podía excluir todo (lo mismo que pasaría si, por ejemplo, descargara una foto de internet, sólo descargo un .png, todo lo demás no se descarga pero autogenerado ).

He aquí una lista no estructurada de reflexiones que puede tener en cuenta

  • Si quieres asegurarte de que tu portátil no se quede dormido, es posible que quieras caffeinate el proceso caffeinate -s rsync -av ... . Tomado de aquí .

  • Si estás haciendo copias locales, como en mi caso, o incluso si la conexión a Internet no es demasiado lenta, deberías no utilice -z (compresión), y utilizar -W (transferir el archivo completo, en lugar de las transferencias delta; esto es un valor por defecto cuando es local) y probablemente utilizar --inplace para que las transferencias sean rápidas. Tomado de aquí .

  • Puede utilizar --delete-after por lo que cualquier archivo será primero transferido, y luego movido en el destino (y eliminado el original) y es más seguro que eliminar antes de la transferencia o durante la transferencia.

  • Puede detener la transferencia pulsando ctrl + C y se detendrá limpiamente. Tomado de aquí . Este era uno de mis temores con SuperDuper!, si necesitas parar una transferencia te aparece el mensaje "Dejarás el disco duro en un estado desconocido ".

  • En las últimas versiones hay --info=progress2 que añade aún más detalles a -v .

  • Hay -P (que equivale a --partial y --progress ) que dejará allí los archivos a medio transferir para que puedas seguir cuando reinicies el proceso (si por alguna razón no puedes terminar la sincronización de una vez).

  • Podría interesar detener Spotlight o TimeMachine antes de hacer la copia, y volver a habilitarlos después de la transferencia. E incluso desactivar Spotlight para el disco externo.

  • Otras opciones utilizadas en todas esas referencias son -x (o --one-file-system ), -E ( --executability ), -H ( --hard-links ), -X ( --xattrs ), -A ( --acls ), y --sparse , --hfs-compression , --protect-decmpfs . Puede que quieras mirarlas.

Para mí, un comando básico se parece (podría usar más opciones, pero esto es suficiente para un ejemplo):

caffeinate -s rsync -av --delete-after --progress --stats --exclude-from 'excludefile.txt' \
  "/Volumes/SrcHDD/" "/Volumes/DstHDD" # note the trailing slash / after the source

Ahora bien, en mi caso podría incluir simplemente {*.jpg,*.png,*.mp4,*.txt,*.pdf,…} y nadie diría "necesitas también los archivos del sistema" pero como no quiero buscar para obtener todos los posibles tipos de archivos que tengo, prefiero excluir. Y hay cosas que no sólo pueden ser pero parece conveniente para excluir.

He encontrado unos cuantos enlaces, coge lo que quieras:

  1. https://bombich.com/kb/ccc4/some-files-and-folders-are-automatically-excluded-from-backup-task

  2. https://gist.github.com/tvwerkhoven/4541989

  3. https://github.com/necolas/dotfiles

  4. https://gist.github.com/shkm/5531679

  5. http://www.hackurmac.com/2014/08/backing-up-and-restoring-your-hackintosh.html

  6. https://github.com/jedda/Counterpart

  7. http://alanwsmith.com/rsync-exclude-list-for-mac-osx

Y a partir de ahí probablemente se podría obtener lo que es seguro o sano ignorar. Aquí está la lista completa (acabo de eliminar los duplicados)

.HFS+ Private Directory Data*
/.journal
/.journal_info_block
.AppleDouble
.AppleDB
/lost+found

.metadata_never_index
.metadata_never_index_unless_rootfs
/.com.apple.timemachine.donotpresent
.VolumeIcon.icns
/System/Library/CoreServices/.disk_label*
/TheVolumeSettingsFolder

.DocumentRevisions-V100*
.Spotlight-V100
/.fseventsd
/.hotfiles.btree
/private/var/db/systemstats

/private/var/db/dyld/dyld_*
/System/Library/Caches/com.apple.bootstamps/*
/System/Library/Caches/com.apple.corestorage/*
/System/Library/Caches/com.apple.kext.caches/*

/.com.apple.NetBootX

/Volumes/*
/dev/*
/automount/*
/Network/*
/.vol/*
/net

/private/var/folders/zz/*
/private/var/vm/*
/private/tmp/*
/cores/*

.Trash
.Trashes

/Backups.backupdb
/.MobileBackups
/.MobileBackups.trash
/.MobileBackups.trash

Library/Mobile Documents.*
.webtmp

/Library/Caches/CrashPlan
/PGPWDE01
/PGPWDE02
/.bzvol
/Library/Application Support/Comodo/AntiVirus/Quarantine
/private/var/spool/qmaster
$Recycle.Bin
Saved Application State
Library/Preferences/ByHost/com.apple.loginwindow*

.AppleDesktop
.com.apple.timemachine.supported
Network Trash Folder
/Library/Caches/*
/private/var/spool/postfix/*
$RECYCLE.BIN
/stuff/*
/afs/*
/private/var/run/*
/Previous Systems.localized
/tmp/*
.dbfseventsd
.DS_Store
.PKInstallSandboxManager
.SymAV*
.symSchedScanLockxz
.TemporaryItems
Desktop DB
Desktop DF
hiberfil.sys
pagefile.sys
Recycled
RECYCLER
System Volume Information
Temporary Items
Thumbs.db
AUTORUN.INF
Autorun.inf
autorun.inf

4voto

user3439894 Puntos 5883

Yo aconsejaría no podar meta-datos durante una copia de seguridad, en particular el archivos de puntos Por ejemplo ._$filename Sin embargo, si realmente quiere excluir el archivos de puntos de su rsync comando añadir --exclude '.*' a ella.

rsync -av --exclude '.*' --progress --delete /Volumes/A/ /Volumes/B

3voto

Krunal Puntos 2932

He utilizado rsync para las copias de seguridad en varios trabajos, y lo uso en casa.

Lo recomiendo encarecidamente, pero con algunas modificaciones. Como herramienta de copia de seguridad, es genial, pero como herramienta de archivo se queda un poco corta. Sí, copia todo, pero no obtienes versiones de todo, siempre obtienes las últimas versiones solamente.

He utilizado esta guía http://www.mikerubel.org/computers/rsync_snapshots/ como punto de partida. Lea toda la página. Hace un gran trabajo explicando las opciones, y describe cómo puedes implementar las copias de seguridad incrementales. Y sorprendentemente, el artículo tiene más de 10 años, pero sigue siendo aplicable hoy en día. Hay que amar a Unix.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X