¿Se puede observar el progreso de sincronización de iCloud?

14

Tengo mi Mac con OS X 10.8 configurado para poder ver el contenido de su repositorio de iCloud en ~/Library/Mobile Documents(vea esta pregunta y esta pregunta para obtener más información sobre cómo funciona). Sin embargo, me gustaría poder ver / visualizar / comprender el estado de sincronización de mi Mac:

  • ¿Mi Mac está sincronizada con iCloud?
  • Si no es así, ¿qué se carga / descarga / cuánto tiempo llevará?
  • ¿Existen utilidades o funciones integradas de OS X que me permitan ver algo de esto?

Estas son preguntas válidas incluso sin que iCloud esté expuesto explícitamente en el sistema de archivos, pero obviamente son más útiles si copia números masivos de archivos dentro / fuera del repositorio de iCloud explícitamente.

Andrew Ferrier
fuente

Respuestas:

2

Actividad

El siguiente comando, ejecute mientras trabaja con iCloud con aplicaciones (como Smultron 4 y TextEdit) que admiten documentos móviles:

sudo opensnoop -n ubd

- muestra archivos locales abiertos por el ubicuo demonio. Los archivos incluyen bases de datos, una base de datos por par. Un directorio por igual en la siguiente ruta:

~/Library/Application Support/Ubiquity

Tipos de datos

Si desea medir el progreso, decida qué tipos medir:

  • Datos centrales
  • documentos
  • valor clave.

Ahorro, progreso y medición.

Datos centrales

... Los archivos de registro de cambios, no el archivo de la tienda, se cargan en iCloud y se descargan en cada uno de los otros dispositivos de un usuario. Cuando llega un registro de cambios desde otro dispositivo conectado a la misma cuenta de iCloud, Core Data actualiza la copia local de su aplicación de la base de datos SQLite, en función del registro de cambios recibido. iCloud y Core Data aseguran que cada base de datos local se actualice con el mismo conjunto de cambios. ...

Considere: sin interpretar el contenido de un registro de cambios, ¿valdrá la pena medir el progreso de la carga del archivo de registro?

Documentos

En la Biblioteca para desarrolladores de Mac:

... Las aplicaciones basadas en documentos pueden adoptar el guardado automático en su lugar, y sus documentos se guardan automáticamente en los momentos apropiados ...

También:

Estrategias automáticas de almacenamiento de datos alivian al usuario

… Puntos apropiados en su código donde cualquier cambio relacionado con el usuario debe guardarse y escribir esos cambios en el disco automáticamente. ...

Algunos momentos apropiados en los que puede guardar los datos del usuario automáticamente incluyen los siguientes:

  • Cuando el usuario cierra la ventana de la aplicación o la cierra (applicationWillTerminate :)
  • Cuando la aplicación está desactivada (applicationWillResignActive :)
  • Cuando el usuario oculta su aplicación (applicationWillHide :)
  • Siempre que el usuario realice un cambio válido en los datos de su aplicación

El último elemento significa que tiene la libertad de guardar los datos del usuario en cualquier momento que tenga sentido hacerlo. Por ejemplo, si el usuario está editando campos de un registro de datos, puede guardar cada valor de campo a medida que se modifica o puede esperar y guardar todos los campos cuando el usuario muestre un nuevo registro. Realizar estos tipos de cambios incrementales garantiza que los datos estén siempre actualizados, pero también requiere una administración más precisa de su modelo de datos. ...

Considere: esos ahorros pueden ser tan frecuentes, y las cantidades tan pequeñas, que la medición no valdrá la pena.

item-info.db

Jugué con el Explorador de bases de datos SQLite para buscar en la item-info.dbbase de datos el par que parece ser mi Mac local. Como sospechaba, la aplicación solo podía navegar mientras el sistema no usaba la base de datos; en dos segundos después de usar Vista previa para editar un Untitled.pngiCloud, ya no podía navegar por la base de datos ... y así sucesivamente.

Referencias

Guía de diseño de iCloud

Guía de programación de aplicaciones para Mac : El diseño de la aplicación principal:

Graham Perrin
fuente
Eso está bastante bien, gracias. El comando que proporciona no produce una salida particularmente fácil de usar (y realmente no aborda el estado de sincronización / sincronización, estado de carga / descarga, etc.), pero hasta ahora está más cerca que cualquier otra cosa.
Andrew Ferrier
Gracias, en teoría, podríamos hacer más con comandos basados ​​en DTrace, como por ejemplo, iosnooppero no todas las cosas relacionadas con DTrace funcionan perfectamente en OS X. Yo también tengo curiosidad por las cosas que no están cubiertas por esta respuesta.
Graham Perrin
5

No hay herramientas integradas de OS X diseñadas explícitamente para mostrarle la información de sincronización de iCloud.

A partir de OS X 10.8.2, Apple no ha hecho pública esta información. A menos que Apple publique las interfaces de programador de aplicaciones (API) de OS X para proporcionar la información que busca, ningún tercero podrá proporcionar con precisión los detalles de sincronización.

Teniendo esto en cuenta, den su opinión al equipo de iCloud de Apple ; deja que los ingenieros de Apple sepan lo que quieres y por qué.

Mientras espera, puede rastrear las conexiones a los servidores iCloud de Apple, medir el flujo de tráfico y el acceso al disco. Estas métricas proporcionarán cierta información, pero no proporcionarán las duraciones esperadas ni las medidas de porcentaje completado.

Para explorar el flujo de datos, explore las herramientas integradas de OS X como lsof y netstat .

Graham Miln
fuente
1
Gracias por la respuesta. Había adivinado que este podría ser el caso, pero esperaba que alguien más ya hubiera realizado ingeniería inversa del flujo de tráfico, construido una herramienta, etc.
Andrew Ferrier
1

Si REALMENTE desea ver lo que está sucediendo, puede usar tcpdump (/ usr / sbin / tcpdump), que captura los paquetes. Le mostrará los paquetes a medida que pasan por la red. No es la forma más fácil, pero es la forma más completa de ver estos datos.

Greg Cain
fuente
¿Alguna idea de qué puertos se deben mirar? Mi conjetura es al menos 80, 443 y 5223. Para incluir el correo electrónico, agregue 25, 587 y 993.
Marnix A. van Ammers
1

A partir de OS X 10.11 (si no es 10.10), si tiene alguna subcarpeta de su unidad iCloud abierta en el Finder mientras cambia archivos en iCloud, y la barra de estado de esa ventana está activada, el Finder le dirá cuántos archivos hay sincronizado y cuántos datos se han transferido hasta ahora.

usuario1134918
fuente
En OSX 10.13.6 no veo esa información en la barra de estado. Veo un pequeño círculo al lado del icono de iCloud del buscador en la barra lateral. Puedo hacer clic en eso para obtener información sobre los datos que se transfieren.
Marnix A. van Ammers
Ver captura de pantalla: la barra de estado (⌘- / para mostrar) que se ejecuta en la parte inferior de la ventana debe mostrar el progreso de la sincronización con iCloud, siempre que esté en cualquier ventana del Finder que se encuentre dentro de la jerarquía de la carpeta de su unidad iCloud .
user1134918
Parece que las imágenes no se incluirán en los comentarios, pero vea i.imgur.com/deKecx9.png
user1134918
0

Ejecutar lo siguiente en Terminal parece hacer el truco para mí:

lsof | grep "Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache"

El comando lsof da como resultado esto:

cloudd    11237 carl   10r     REG                1,4   3009775 1460206 /Users/carl/Pictures/Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache/AYX/cplAYX8CMwjKIhIUqNRCwXobzKHe9iC.jpeg
cloudd    11237 carl   21r     REG                1,4   2465075 1460208 /Users/carl/Pictures/Photos Library.photoslibrary/private/com.apple.cloudphotosd/CloudSync.noindex/Engine/filecache/ATL/cplATLqV8CAvtA70qoJqZ21PimnEIPe.jpeg

simplemente vuelva a emitirlo (flecha hacia arriba y presione Intro) y debería verlo cambiar.

biffom
fuente
¿Dónde estás ejecutando este comando? ¿Cómo se ve la salida?
Andrew Ferrier
De la terminal.
biffom
1
No necesita cd ~ / Imágenes. ¿No estás seguro de por qué Patrix lo editó?
Biffom
Tienes razón, malinterpretas tu intención. OTOH, puede editar su respuesta para agregar contenido adicional, sin necesidad de publicar una segunda.
nohillside