Чи можна спостерігати хід синхронізації iCloud?


14

У мене Mac, на якому працює ОС X 10.8, налаштований так, щоб я міг бачити вміст його сховища iCloud за адресою ~/Library/Mobile Documents(див. Це питання та це питання для отримання додаткової інформації про те, як це працює). Однак я хотів би мати можливість бачити / візуалізувати / розуміти стан синхронізації мого Mac:

  • Чи синхронізований мій Mac з iCloud?
  • Якщо ні, то що завантажується / завантажується / скільки часу це займе?
  • Чи є якісь утиліти чи вбудовані функції OS X, які дозволять мені бачити щось із цього?

Це дійсні питання навіть без явного викриття iCloud у файловій системі, але, очевидно, корисніше, якщо ви явно копіюєте основну кількість файлів у сховище iCloud.

Відповіді:


2

Діяльність

Наступну команду виконайте під час роботи з iCloud з додатками (такими як Smultron 4 та TextEdit), які підтримують мобільні документи -

sudo opensnoop -n ubd

- показує локальні файли, відкриті демоном повсюдності. Файли включають бази даних, одну базу даних на одного рівня. Один каталог на однорангового на наступному шляху:

~/Library/Application Support/Ubiquity

Типи даних

Якщо ви хочете оцінити прогрес, вирішіть, які типи вимірювати:

  • Основні дані
  • документи
  • ключ-значення.

Економить, прогресує та вимірює

Основні дані

… Файли журналу змін, а не файл зберігання, завантажуються в iCloud та завантажуються на кожен з інших пристроїв користувача. Коли журнал змін надходить з іншого пристрою, підключеного до того ж облікового запису iCloud, Core Data оновлює локальну копію вашої програми бази даних SQLite на основі отриманого журналу змін. iCloud та основні дані забезпечують оновлення кожної локальної бази даних однаковим набором змін. …

Поміркуйте: чи не інтерпретувати вміст журналу змін, чи варто вимірювати хід завантаження файлу журналу?

Документи

У бібліотеці розробників Mac:

… Документи на основі документів можуть приймати на місце автоматичне збереження, а його документи автоматично зберігаються у відповідний час…

Також:

Автоматичні стратегії збереження даних Поверніть користувача

… Відповідні пункти у вашому коді, де будь-які зміни, пов’язані з користувачем, слід зберігати та автоматично записувати ці зміни на диск. …

Деякі підходящі моменти, коли ви можете автоматично зберігати дані користувачів, включають наступне:

  • Коли користувач закриває вікно програми або закриває додаток (applicationWillTerminate :)
  • Коли програма відключена (applicationWillResignActive :)
  • Коли користувач сховає ваш додаток (applicationWillHide :)
  • Щоразу, коли користувач вносить дійсні зміни даних у вашому додатку

Останній пункт означає, що у вас є свобода зберігати дані користувача у будь-який час, це має сенс зробити. Наприклад, якщо користувач редагує поля запису даних, ви можете зберегти кожне значення поля у міру зміни або ви можете зачекати та зберегти всі поля, коли користувач відобразить нову запис. Внесення цих типів додаткових змін гарантує, що дані завжди актуальні, але також вимагає більш тонкого управління вашою моделлю даних. …

Поміркуйте: ці заощадження можуть бути настільки часті, а суми такі невеликі, що вимірювати їх не варто.

item-info.db

Я грав із браузером SQLite Database Browser, щоб переглядати item-info.dbбазу даних для однорангових, які здаються моїм локальним Mac. Як я підозрював, додаток може переглядати лише тоді, коли система не використовує базу даних - протягом двох секунд після використання попереднього перегляду для редагування Untitled.pngiCloud я більше не міг переглядати базу даних ... і так далі.

Список літератури

Посібник із дизайну iCloud

Посібник з програмування додатків Mac : Основний дизайн додатків:


Це дуже добре, дякую. Команда, яку ви даєте, не дає особливо зручного для користувача виводу (і не реально вирішує стан insync / out-of-sync, стан завантаження / завантаження тощо), але це ближче, ніж будь-що інше до цих пір.
Ендрю Фер'є

Дякую - теоретично ми могли би більше зробити з командами на основі DTrace, такими як, iosnoopале не всі речі, пов’язані з DTrace, відмінно працюють в OS X. Мені теж цікаво те, на що не поширюється ця відповідь.
Грем Перрін

5

Немає вбудованих інструментів OS X, призначених явно для відображення інформації про синхронізацію iCloud.

Щодо ОС X 10.8.2, Apple не оприлюднила цю інформацію. Якщо Apple не опублікує інтерфейси прикладного програміста OS X для надання потрібної інформації, жодна третя сторона не зможе точно надати дані синхронізації.

Враховуючи це, будь ласка, дайте відгуки команді Apple iCloud ; дайте інженерам Apple знати, що ви хочете і чому.

Поки ви чекаєте, ви можете відстежувати з'єднання з серверами Apple iCloud, вимірювати потік трафіку та доступ до диска. Ці показники дадуть деяку інформацію, але вони не забезпечать очікуваної тривалості або відсоткового завершення заходів.

Щоб вивчити потік даних, вивчіть вбудовані засоби OS X, такі як lsof та netstat .


1
Дякую за відповідь. Я здогадувався, що це може бути так, але я сподівався, що хтось інший вже інженерно розробив потік трафіку, побудував інструмент тощо.
Ендрю Фер'є

1

Якщо ви дійсно хочете побачити, що відбувається, ви можете використовувати tcpdump (/ usr / sbin / tcpdump), який робить захоплення пакетів. Він покаже вам пакети, коли вони йдуть по мережі. Це не найпростіший, але це найбільш повний спосіб бачити ці дані.


Будь-яка ідея, на які порти слід дивитися? Я думаю, щонайменше 80, 443 та 5223. Для включення електронної пошти додайте 25, 587 та 993.
Marnix A. van Ammers

1

Що стосується OS X 10.11 (якщо не 10.10), якщо у вас в папці Finder відкрита підпапка iCloud Drive під час зміни файлів у iCloud, і рядок стану цього вікна увімкнено, Finder підкаже, скільки файлів синхронізується і скільки даних передано дотепер.


В OSX 10.13.6 я не бачу цієї інформації в рядку стану. Я бачу невелике коло поруч із значком iCloud шукача на бічній панелі. Я можу натиснути на це, щоб отримати деяку інформацію про передані дані.
Marnix A. van Ammers

Дивіться скріншот - рядок стану (⌘- / показувати), що працює внизу вікна, повинен відображати хід синхронізації з iCloud, якщо ви знаходитесь у будь-якому вікні Finder, що підпадає під ієрархію папки iCloud Drive .
користувач1134918

Здається, що зображення не вставлятимуться в коментарі, але дивіться i.imgur.com/deKecx9.png
user1134918

0

Запуск наступного в Terminal, здається, робить для мене хитрість:

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

Команда lsof призводить до цього:

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

просто опублікуйте його ще раз (стрілка вгору та натисніть кнопку повернення), і вам слід побачити, як це змінилося.


Де ти запускаєш цю команду? Як виглядає вихід?
Ендрю Фер’єр

З терміналу.
biffom

1
Не потрібно cd ~ / Картинки. не впевнений, чому патрікс редагував це в?
biffom

Ви маєте рацію, неправильно читайте свої наміри. ОТО, ви можете редагувати свою відповідь, щоб додати додатковий вміст, не потрібно публікувати другий.
nohillside
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.