Tengo mi Mac con OS X 10.8 configurado para poder ver el contenido de su repositorio de iCloud en ~/Library/Mobile Documents
(consulte 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:
Estas son preguntas válidas incluso sin que iCloud esté explícitamente expuesto en el sistema de archivos, pero obviamente son más útiles si copia grandes cantidades de archivos dentro o fuera del repositorio de iCloud explícitamente.
Ejecute el siguiente comando mientras trabaja con iCloud con aplicaciones (como Smultron 4 y TextEdit) que admiten documentos móviles:
sudo opensnoop -n ubd
– muestra los archivos locales abiertos por el demonio de ubicuidad. Los archivos incluyen bases de datos, una base de datos por par. Un directorio por par en la siguiente ruta:
~/Library/Application Support/Ubiquity
Si desea medir el progreso, decida qué tipos medir:
… 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 de otro dispositivo conectado a la misma cuenta de iCloud, Core Data actualiza la copia local de la base de datos SQLite de su aplicación, según el 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 carga del archivo de registro?
En la biblioteca de 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:
Las estrategias automáticas de ahorro de datos alivian al usuario
… puntos apropiados en su código donde se deben guardar los cambios relacionados con el usuario y escribir esos cambios en el disco automáticamente. …
Algunos momentos apropiados en los que puede guardar datos de usuario automáticamente incluyen los siguientes:
- Cuando el usuario cierra la ventana de la aplicación o sale de la aplicación (applicationWillTerminate:)
- Cuando la aplicación está desactivada (applicationWillResignActive:)
- Cuando el usuario oculta su aplicación (applicationWillHide:)
- Cada vez que el usuario realiza 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 cambia o puede esperar y guardar todos los campos cuando el usuario muestra un nuevo registro. Hacer este tipo de cambios incrementales garantiza que los datos estén siempre actualizados, pero también requiere una gestión más detallada 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.
Jugué con SQLite Database Browser para buscar en la item-info.db
base de datos el par que parece ser mi Mac local. Como sospechaba, la aplicación solo podía navegar mientras el sistema no estaba usando la base de datos: a los dos segundos de usar Vista previa para editar Untitled.png
en iCloud, ya no podía navegar por la base de datos... y así sucesivamente.
Guía de programación de aplicaciones para Mac : El diseño básico de la aplicación:
No hay herramientas integradas de OS X diseñadas explícitamente para mostrarle 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 interfaces de programación de aplicaciones (API) OS X para proporcionar la información que busca, ningún tercero podrá proporcionar con precisión los detalles de sincronización.
Dado esto, envíe sus comentarios al equipo de iCloud de Apple ; deja que los ingenieros de Apple sepan lo que quieres y por qué.
Mientras espera, puede realizar un seguimiento de 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 completo.
Para explorar el flujo de datos, explore las herramientas integradas de OS X como lsof y netstat .
Si REALMENTE quiere ver lo que está pasando, puede usar tcpdump (/usr/sbin/tcpdump), que captura 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.
Ejecutar lo siguiente en Terminal parece funcionar 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 regresar) y debería verlo cambiar.
A partir de OS X 10.11 (si no 10.10), si tiene alguna subcarpeta de su iCloud Drive 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. sincronizados y cuántos datos se han transferido hasta el momento.
Andrés Ferrer
graham perrin
iosnoop
pero no todas las cosas relacionadas con DTrace funcionan perfectamente en OS X. Yo también tengo curiosidad acerca de las cosas que no están cubiertas por esta respuesta.