È possibile osservare il progresso di sincronizzazione di iCloud?


14

Ho il mio Mac con OS X 10.8 impostato in modo da poter vedere il contenuto del suo repository iCloud su ~/Library/Mobile Documents (vedere questa domanda e questa domanda per maggiori informazioni su come funziona). Tuttavia, mi piacerebbe essere in grado di vedere / visualizzare / capire lo stato di sincronizzazione del mio Mac:

  • Il mio Mac è sincronizzato con iCloud?
  • In caso contrario, cosa viene caricato / scaricato / quanto tempo ci vorrà?
  • Ci sono delle utility o funzionalità integrate di OS X che mi permetteranno di vedere tutto questo?

Queste sono domande valide anche senza iCloud esplicitamente esposto nel filesystem, ma sono ovviamente più utili se si copiano esplicitamente i numeri di massa di file in / out del repository iCloud.

Risposte:


2

Attività

Il seguente comando, funziona mentre lavori con iCloud con app (come Smultron 4 e TextEdit) che supportano Documenti Mobile -

sudo opensnoop -n ubd

- mostra i file locali aperti dal demone ubiquity. I file includono database, un database per peer. Una directory per peer nel seguente percorso:

~/Library/Application Support/Ubiquity

Tipi di dati

Se desideri misurare i progressi, decidi quali tipi misurare:

  • Dati principali
  • documenti
  • valore-chiave.

Salva, progredisce e misura

Dati principali

... I file di registro delle modifiche, non i file di archivio, vengono caricati su iCloud e   scaricato su ciascuno degli altri dispositivi di un utente. Quando un registro delle modifiche   arriva da un altro dispositivo collegato allo stesso account iCloud, Core   Data aggiorna la copia locale dell'app del database SQLite, in base a   il registro delle modifiche ricevute. iCloud e Core Data assicurano che ogni locale   il database viene aggiornato con lo stesso insieme di modifiche. ...

Considera: senza interpretare il soddisfare di un registro delle modifiche, varrebbe la pena misurare l'avanzamento del caricamento del file di registro?

Documenti

Nella libreria per sviluppatori Mac:

... Le app basate su documenti possono adottare l'autosalvataggio in atto e i relativi documenti   vengono automaticamente salvati al momento opportuno ...

Anche:

Strategie automatiche di salvataggio dei dati Alleviare l'utente

... punti appropriati nel tuo codice in cui qualsiasi modifica relativa all'utente   dovrebbe essere salvato e scrivere automaticamente tali modifiche sul disco. ...

Alcuni momenti appropriati in cui è possibile salvare automaticamente i dati dell'utente   include il seguente:

  • Quando l'utente chiude la finestra dell'app o chiude l'app (applicationWillTerminate :)
  • Quando l'app è disattivata (applicationWillResignActive :)
  • Quando l'utente nasconde la tua app (applicationWillHide :)
  • Ogni volta che l'utente apporta una modifica valida ai dati nella tua app

L'ultimo elemento significa che hai la libertà di salvare i dati dell'utente   in qualsiasi momento ha senso farlo. Ad esempio, se l'utente è   modifica dei campi di un record di dati, è possibile salvare ogni valore di campo come esso   è cambiato o puoi aspettare e salvare tutti i campi quando l'utente visualizza   un nuovo record. Rendere questo tipo di modifiche incrementali lo garantisce   i dati sono sempre aggiornati ma richiedono anche maggiore precisione   gestione del tuo modello di dati. ...

Considera: quei salvataggi possono essere così frequenti, e le somme così piccole, che la misurazione non valga la pena.

item-info.db

Ho giocato con SQLite Database Browser per sfogliare il item-info.db database per il peer che sembra essere il mio Mac locale. Come sospettavo, l'app poteva navigare solo mentre il sistema non utilizzava il database - entro due secondi dall'uso di Anteprima per modificare un Untitled.png in iCloud, non potevo più navigare nel database ... e così via.

Riferimenti

iCloud Design Guide

Guida alla programmazione di app per Mac : The Core App Design:


È abbastanza buono, grazie. Il comando che date non produce un output particolarmente user-friendly (e non affronta in realtà lo stato di sincronizzazione / fuori sincrono, upload / download, ecc.), Ma è più vicino di qualsiasi altra cosa finora.
Andrew Ferrier

Grazie - in teoria potremmo fare di più con comandi basati su DTrace come iosnoop ma non tutte le cose correlate a DTrace funzionano perfettamente su OS X. Anch'io sono curioso di cose che non sono coperte da questa risposta.
Graham Perrin

5

Non ci sono strumenti OS X incorporati progettati esplicitamente per mostrare le informazioni di sincronizzazione di iCloud.

A partire da OS X 10.8.2, Apple non ha reso pubbliche queste informazioni. A meno che Apple non pubblichi OS X Application Programmer Interfaces (API) per fornire le informazioni ricercate, nessuna terza parte sarà in grado di fornire con precisione i dettagli della sincronizzazione.

Detto questo, per favore dare il feedback del team iCloud di Apple ; lascia che i tecnici Apple sappiano cosa vuoi e perché.

Mentre aspetti, puoi tenere traccia delle connessioni ai server iCloud di Apple, misurare il flusso di traffico e accedere al disco. Queste metriche forniranno alcune informazioni ma non forniranno le durate previste o le misure complete percentuali.

Per esplorare il flusso di dati, esplora gli strumenti integrati di OS X come lsof e netstat .


1
Grazie per la risposta. Avevo immaginato che fosse così, ma speravo che qualcun altro avesse già decodificato il flusso del traffico, costruito uno strumento, ecc.
Andrew Ferrier

1

Se VERAMENTE vuoi vedere cosa sta succedendo, puoi usare tcpdump (/ usr / sbin / tcpdump), che cattura i pacchetti. Ti mostrerà i pacchetti mentre vanno sulla rete. Non è il più semplice, ma è il modo più completo per vedere questi dati.


Qualche idea su quali porte dovrebbero essere guardate? La mia ipotesi è almeno 80, 443 e 5223, per includere la posta elettronica, aggiungere 25, 587 e 993.
Marnix A. van Ammers

1

A partire da OS X 10.11 (se non 10.10), se hai una sottocartella di iCloud Drive aperta nel Finder mentre cambi i file in iCloud e la barra di stato di quella finestra è attiva, il Finder ti dirà quanti file sono in fase di sincronizzazione e quanti dati sono stati trasferiti finora.


In OSX 10.13.6 non vedo quell'informazione nella barra di stato. Vedo un piccolo cerchio accanto all'icona iCloud del Finder nella barra laterale. Posso fare clic su questo per ottenere alcune informazioni sui dati trasferiti.
Marnix A. van Ammers

Vedi screenshot: la barra di stato (⌘- / to show) che corre lungo la parte inferiore della finestra dovrebbe mostrare l'avanzamento della sincronizzazione con iCloud, purché ci si trovi in ​​una finestra del Finder che rientra nella gerarchia della cartella di iCloud Drive .
user1134918

Sembra che le immagini non si incorporino nei commenti, ma vedi i.imgur.com/deKecx9.png
user1134918

0

Eseguire il seguente in Terminale sembra fare il trucco per me:

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

Il comando lsof ha come risultato:

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

è sufficiente emetterlo nuovamente (freccia su e premere Invio) e dovresti vederlo cambiare.


Dove stai eseguendo questo comando? Come appare l'output?
Andrew Ferrier

Dal terminale.
biffom

1
Non è necessario il cd ~ / Pictures. non sono sicuro del motivo per cui è stata modificata da patrix?
biffom

Hai ragione, hai letto male le tue intenzioni. OTOH, puoi modificare la tua risposta per aggiungere contenuti aggiuntivi, non è necessario postarne una seconda.
nohillside
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.