Bisakah kemajuan sinkronisasi iCloud diamati?

14

Saya mengatur Mac saya menjalankan OS X 10.8 sehingga saya dapat melihat isi dari repositori iCloud-nya di ~/Library/Mobile Documents(lihat pertanyaan ini dan pertanyaan ini untuk informasi lebih lanjut tentang cara kerjanya). Namun, saya ingin dapat melihat / memvisualisasikan / memahami keadaan sinkronisasi Mac saya:

  • Apakah Mac saya sinkron dengan iCloud?
  • Jika tidak, apa yang sedang diunggah / diunduh / berapa lama?
  • Apakah ada utilitas atau fitur bawaan OS X yang memungkinkan saya melihat semua ini?

Ini adalah pertanyaan yang valid bahkan tanpa iCloud diekspos secara eksplisit di sistem file, tetapi jelas lebih berguna jika Anda menyalin sejumlah besar file masuk / keluar dari repositori iCloud secara eksplisit.

Andrew Ferrier
sumber

Jawaban:

2

Aktivitas

Perintah berikut, jalankan sambil bekerja dengan iCloud dengan aplikasi (seperti Smultron 4 dan TextEdit) yang mendukung Dokumen Seluler -

sudo opensnoop -n ubd

- menunjukkan file lokal yang dibuka oleh daemon ubiquity. File termasuk basis data, satu basis data per rekan. Satu direktori per rekan di jalur berikut:

~/Library/Application Support/Ubiquity

Jenis data

Jika Anda ingin mengukur kemajuan, putuskan jenis mana yang akan diukur:

  • Data Inti
  • dokumen
  • nilai kunci.

Menghemat, kemajuan dan pengukuran

Data Inti

... File perubahan log, bukan file toko, diunggah ke iCloud dan diunduh ke masing-masing perangkat lain milik pengguna. Ketika log perubahan datang dari perangkat lain yang terpasang pada akun iCloud yang sama, Core Data memperbarui salinan lokal Anda dari database SQLite, berdasarkan pada log perubahan yang diterima. iCloud dan Core Data memastikan bahwa setiap basis data lokal diperbarui dengan set perubahan yang sama. ...

Pertimbangkan: tanpa menafsirkan konten log perubahan, apakah akan bermanfaat untuk mengukur kemajuan unggahan file log?

Dokumen

Di Perpustakaan Pengembang Mac:

... Aplikasi berbasis dokumen dapat mengadopsi penyimpanan otomatis di tempat, dan dokumennya secara otomatis disimpan pada waktu yang tepat ...

Juga:

Strategi Hemat Data Otomatis Menghilangkan Pengguna

... poin yang sesuai dalam kode Anda di mana setiap perubahan terkait pengguna harus disimpan dan menulis perubahan tersebut ke disk secara otomatis. ...

Beberapa waktu yang tepat ketika Anda dapat menyimpan data pengguna secara otomatis meliputi yang berikut:

  • Ketika pengguna menutup jendela aplikasi atau berhenti dari aplikasi (applicationWillTerminate :)
  • Ketika aplikasi dinonaktifkan (applicationWillResignActive :)
  • Ketika pengguna menyembunyikan aplikasi Anda (applicationWillHide :)
  • Setiap kali pengguna membuat perubahan yang valid ke data di aplikasi Anda

Item terakhir berarti bahwa Anda memiliki kebebasan untuk menyimpan data pengguna kapan saja masuk akal untuk melakukannya. Misalnya, jika pengguna mengedit bidang rekaman data, Anda bisa menyimpan setiap nilai bidang saat itu diubah atau Anda bisa menunggu dan menyimpan semua bidang saat pengguna menampilkan catatan baru. Membuat jenis-jenis perubahan tambahan ini memastikan bahwa data selalu up-to-date tetapi juga membutuhkan manajemen yang lebih baik dari model data Anda. ...

Pertimbangkan: penghematan itu mungkin begitu sering, dan jumlahnya sangat kecil, sehingga pengukurannya tidak akan bermanfaat.

item-info.db

Saya bermain-main dengan SQLite Database Browser untuk menelusuri item-info.dbbasis data untuk rekan yang sepertinya adalah Mac lokal saya. Seperti yang saya duga, aplikasi hanya dapat menelusuri sementara sistem tidak menggunakan database - dalam dua detik menggunakan Preview untuk mengedit Untitled.pngdi iCloud, saya tidak bisa lagi menelusuri database ... dan seterusnya.

Referensi

Panduan Desain iCloud

Panduan Pemrograman Aplikasi Mac : Desain Aplikasi Inti:

Graham Perrin
sumber
Cukup bagus, terima kasih. Perintah yang Anda berikan tidak menghasilkan keluaran yang ramah-pengguna (dan tidak benar-benar mengatasi keadaan tidak sinkron / tidak sinkron, status unggah / unduh, dll.), Tetapi lebih dekat dari yang lainnya sejauh ini.
Andrew Ferrier
Terima kasih - secara teori kita mungkin melakukan lebih banyak dengan perintah berbasis DTrace seperti iosnooptetapi tidak semua hal yang berhubungan dengan DTrace bekerja dengan sempurna pada OS X. Saya juga ingin tahu tentang hal-hal yang tidak dicakup oleh jawaban ini.
Graham Perrin
5

Tidak ada alat OS X bawaan yang dirancang secara eksplisit untuk menunjukkan kepada Anda informasi sinkronisasi iCloud.

Pada OS X 10.8.2, Apple belum mempublikasikan informasi ini. Kecuali Apple mempublikasikan Antarmuka Program Aplikasi (OS) Aplikasi OS X untuk memberikan informasi yang Anda cari, tidak ada pihak ketiga yang dapat secara akurat memberikan rincian sinkronisasi.

Dengan ini, tolong beri umpan balik tim iCloud Apple ; biarkan teknisi Apple tahu apa yang Anda inginkan dan mengapa.

Sambil menunggu, Anda dapat melacak koneksi ke server iCloud Apple, mengukur arus lalu lintas, dan akses disk. Metrik ini akan memberikan beberapa wawasan tetapi tidak akan memberikan durasi yang diharapkan atau persentase tindakan lengkap.

Untuk menjelajahi aliran data, jelajahi alat bawaan OS X seperti lsof dan netstat .

Graham Miln
sumber
1
Terima kasih atas jawabannya. Sudah menduga ini mungkin terjadi tetapi saya berharap orang lain sudah membalikkan arus lalu lintas, membangun alat, dll.
Andrew Ferrier
1

Jika Anda BENAR-BENAR ingin melihat apa yang terjadi, Anda dapat menggunakan tcpdump (/ usr / sbin / tcpdump), yang melakukan capture paket. Ini akan menunjukkan kepada Anda paket ketika mereka pergi melalui jaringan. Ini bukan yang termudah, tetapi ini adalah cara paling komprehensif untuk melihat data ini.

Greg Cain
sumber
Adakah yang tahu port mana yang harus dilihat? Dugaan saya adalah setidaknya 80, 443, dan 5223, Untuk memasukkan email, tambahkan 25, 587, dan 993.
Marnix A. van Ammers
1

Pada OS X 10.11 (jika bukan 10.10), jika Anda memiliki subfolder dari iCloud Drive Anda terbuka di Finder saat mengubah file di iCloud, dan bilah status jendela itu dihidupkan, Finder akan memberi tahu Anda berapa banyak file yang sedang disinkronkan dan berapa banyak data yang telah ditransfer sejauh ini.

pengguna1134918
sumber
Di OSX 10.13.6 saya tidak melihat informasi itu di bilah status. Saya melihat lingkaran kecil di sebelah ikon iCloud finder di sidebar. Saya dapat mengkliknya untuk mendapatkan beberapa informasi tentang data yang ditransfer.
Marnix A. van Ammers
Lihat tangkapan layar - bilah status (⌘- / untuk ditampilkan) yang berjalan di bagian bawah jendela akan menampilkan kemajuan sinkronisasi dengan iCloud, selama Anda berada di jendela Finder apa pun yang berada dalam hierarki folder iCloud Drive Anda .
user1134918
Tampaknya gambar tidak akan disematkan dalam komentar, tetapi lihat i.imgur.com/deKecx9.png
user1134918
0

Menjalankan hal-hal berikut di Terminal sepertinya membantu saya:

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

Perintah lsof menghasilkan ini:

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

cukup keluarkan lagi (panah atas dan tekan kembali) dan Anda akan melihatnya berubah.

biffom
sumber
Di mana Anda menjalankan perintah ini? Seperti apa outputnya?
Andrew Ferrier
Dari terminal.
biffom
1
Anda tidak perlu melakukan cd ~ / Pictures. tidak yakin mengapa patrix mengeditnya?
biffom
Anda benar, salah membaca niat Anda. OTOH, Anda dapat mengedit jawaban Anda untuk menambahkan konten tambahan, tidak perlu memposting yang kedua.
nohillside