La progression de la synchronisation iCloud peut-elle être observée?


14

J'ai mon Mac sous OS X 10.8 configuré pour que je puisse voir le contenu de son référentiel iCloud à ~/Library/Mobile Documents(voir cette question et cette question pour plus d'informations sur la façon dont cela fonctionne). Cependant, j'aimerais pouvoir voir / visualiser / comprendre l'état de synchronisation de mon Mac:

  • Mon Mac est-il synchronisé avec iCloud?
  • Sinon, qu'est-ce qui est téléchargé / téléchargé / combien de temps cela prendra-t-il?
  • Existe-t-il des utilitaires ou des fonctionnalités intégrées d'OS X qui me permettront de voir tout cela?

Ce sont des questions valables même sans qu'iCloud soit explicitement exposé dans le système de fichiers, mais elles sont évidemment plus utiles si vous copiez explicitement un grand nombre de fichiers dans / hors du référentiel iCloud.

Réponses:


2

Activité

La commande suivante, exécutée en travaillant avec iCloud avec des applications (telles que Smultron 4 et TextEdit) qui prennent en charge les documents mobiles -

sudo opensnoop -n ubd

- affiche les fichiers locaux ouverts par le démon d'ubiquité. Les fichiers incluent des bases de données, une base de données par homologue. Un répertoire par homologue sur le chemin suivant:

~/Library/Application Support/Ubiquity

Types de données

Si vous souhaitez mesurer les progrès, choisissez les types à mesurer:

  • Données de base
  • les documents
  • valeur clé.

Économies, progrès et mesure

Données de base

… Les fichiers journaux des modifications, et non le fichier du magasin, sont téléchargés sur iCloud et téléchargés sur chacun des autres appareils d'un utilisateur. Lorsqu'un journal des modifications arrive d'un autre appareil connecté au même compte iCloud, Core Data met à jour la copie locale de votre application de la base de données SQLite, en fonction du journal des modifications reçu. iCloud et Core Data garantissent que chaque base de données locale est mise à jour avec le même ensemble de modifications. …

Considérez: sans interpréter le contenu d'un journal des modifications, vaudra-t-il la peine de mesurer la progression du téléchargement du fichier journal?

Les documents

Dans la bibliothèque des développeurs Mac:

… Les applications basées sur des documents peuvent adopter l'enregistrement automatique en place, et ses documents sont automatiquement enregistrés aux moments appropriés…

Aussi:

Les stratégies d'enregistrement automatique des données soulagent l'utilisateur

… Les points appropriés dans votre code où toutes les modifications liées à l'utilisateur doivent être enregistrées et écrivez ces modifications sur le disque automatiquement. …

Voici quelques moments appropriés où vous pouvez enregistrer automatiquement les données utilisateur:

  • Lorsque l'utilisateur ferme la fenêtre de l'application ou quitte l'application (applicationWillTerminate :)
  • Lorsque l'application est désactivée (applicationWillResignActive :)
  • Lorsque l'utilisateur masque votre application (applicationWillHide :)
  • Chaque fois que l'utilisateur apporte une modification valide aux données de votre application

Le dernier élément signifie que vous avez la liberté de sauvegarder les données de l'utilisateur à tout moment où cela est logique de le faire. Par exemple, si l'utilisateur modifie des champs d'un enregistrement de données, vous pouvez enregistrer chaque valeur de champ telle qu'elle est modifiée ou vous pouvez attendre et enregistrer tous les champs lorsque l'utilisateur affiche un nouvel enregistrement. Apporter ces types de modifications incrémentielles garantit que les données sont toujours à jour mais nécessite également une gestion plus fine de votre modèle de données. …

Considérez: ces sauvegardes peuvent être si fréquentes et les montants si petits que cette mesure ne vaudra pas la peine.

item-info.db

J'ai joué avec le navigateur de base de données SQLite pour parcourir la item-info.dbbase de données pour le pair qui semble être mon Mac local. Comme je le soupçonnais, l'application ne pouvait parcourir que lorsque le système n'utilisait pas la base de données - dans les deux secondes suivant l'utilisation de Aperçu pour modifier un Untitled.pngdans iCloud, je ne pouvais plus parcourir la base de données… et ainsi de suite.

Les références

Guide de conception iCloud

Guide de programmation de l'application Mac : conception de l'application principale:


C'est plutôt bien, merci. La commande que vous donnez ne produit pas une sortie particulièrement conviviale (et ne traite pas vraiment de l'état d'insynchronisation / de désynchronisation, de l'état de téléchargement / téléchargement, etc.), mais elle est plus proche que toute autre chose jusqu'à présent.
Andrew Ferrier

Merci - en théorie, nous pourrions faire plus avec les commandes basées sur DTrace telles que iosnoopmais pas toutes les choses liées à DTrace fonctionnent parfaitement sur OS X. Moi aussi, je suis curieux de savoir ce qui n'est pas couvert par cette réponse.
Graham Perrin

5

Il n'y a pas d'outils OS X intégrés conçus explicitement pour vous montrer les informations de synchronisation iCloud.

Depuis OS X 10.8.2, Apple n'a pas rendu ces informations publiques. À moins qu'Apple ne publie des interfaces de programmation d'application (API) OS X pour fournir les informations que vous recherchez, aucun tiers ne pourra fournir avec précision les détails de la synchronisation.

Compte tenu de cela, veuillez donner les commentaires de l'équipe iCloud d'Apple ; faites savoir aux ingénieurs d'Apple ce que vous voulez et pourquoi.

Pendant que vous attendez, vous pouvez suivre les connexions aux serveurs iCloud d'Apple, mesurer le flux de trafic et l'accès au disque. Ces mesures fourniront des informations mais ne fourniront pas les durées attendues ni le pourcentage de mesures terminées.

Pour explorer le flux de données, explorez les outils intégrés d' OS X comme lsof et netstat .


1
Merci d'avoir répondu. J'avais deviné que cela pourrait être le cas, mais j'espérais que quelqu'un d'autre avait déjà procédé à une ingénierie inverse de la circulation, construit un outil, etc.
Andrew Ferrier

1

Si vous voulez vraiment voir ce qui se passe, vous pouvez utiliser tcpdump (/ usr / sbin / tcpdump), qui capture les paquets. Il vous montrera les paquets lors de leur passage sur le réseau. Ce n'est pas le plus simple, mais c'est le moyen le plus complet de voir ces données.


Une idée des ports à examiner? Je suppose qu'au moins 80, 443 et 5223, pour inclure le courrier électronique, ajoutez 25, 587 et 993.
Marnix A. van Ammers

1

À partir d'OS X 10.11 (sinon 10.10), si un sous-dossier de votre lecteur iCloud est ouvert dans le Finder lors de la modification de fichiers dans iCloud et que la barre d'état de cette fenêtre est activée, le Finder vous indiquera combien de fichiers sont en cours de synchronisation et combien de données ont été transférées jusqu'à présent.


Dans OSX 10.13.6, je ne vois pas ces informations dans la barre d'état. Je vois un petit cercle à côté de l'icône iCloud du viseur dans la barre latérale. Je peux cliquer dessus pour obtenir des informations sur les données transférées.
Marnix A. van Ammers

Voir capture d'écran - la barre d'état (⌘- / à afficher) en bas de la fenêtre devrait afficher la progression de la synchronisation avec iCloud, tant que vous êtes dans une fenêtre du Finder qui tombe dans la hiérarchie de votre dossier iCloud Drive .
user1134918

Il semble que les images ne seront pas incorporées dans les commentaires, mais voir i.imgur.com/deKecx9.png
user1134918

0

L'exécution de ce qui suit dans Terminal semble faire l'affaire pour moi:

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

La commande lsof se traduit par ceci:

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

émettez-le à nouveau (flèche vers le haut et appuyez sur retour) et vous devriez le voir changer.


Où exécutez-vous cette commande? À quoi ressemble la sortie?
Andrew Ferrier

Depuis le terminal.
biffom

1
Vous n'avez pas besoin de cd ~ / Images. vous ne savez pas pourquoi Patrix a édité cela en?
biffom

Vous avez raison, avez mal interprété votre intention. OTOH, vous pouvez modifier votre réponse pour ajouter du contenu supplémentaire, pas besoin d'en poster une seconde.
nohillside
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.