Sinkronisasi / cadangan satu arah dengan Unison

13

Saya menggunakan alat penyelarasan Bersamaan dengan mesin Mac OSX dan Ubuntu 9,10 saya untuk membuat cadangan musik saya dari Mac ke Ubuntu. Masalahnya adalah, saya ingin agar Mac saya menjadi sumber dan Ubuntu menjadi target sehingga mesin Ubuntu akan menjadi salinan persis folder Musik di Mac setiap saat, tetapi jika saya menghapus sesuatu dari Ubuntu, ia akan menang ' t dihapus di Mac. Saya telah melihat dokumen tetapi itu agak melintas di kepala saya saat ini.

roflwaffle
sumber

Jawaban:

1

Alat yang lebih baik untuk pekerjaan itu adalah rsync (Anda harus menginstalnya di kedua komputer). Saya menggunakannya untuk menjaga folder musik laptop saya sinkron dengan server file rumah, yang sangat mirip dengan situasi Anda. rsync berspesialisasi dalam menjaga agar salinan cermin selalu terbarui.

Baris perintah seperti ini mungkin berguna (dengan asumsi Anda menjalankannya dari Ubuntu):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

Cukup mudah untuk mengganti baris di atas jika Anda ingin menjalankannya dari Mac dan dorong ke komputer Ubuntu alih-alih menarik.

TheToasterThatCould
sumber
33

Gunakan unison -force:

Manual:

Memasukkan preferensi -force rootmenyebabkan Serentak menyelesaikan semua perbedaan (bahkan perubahan yang tidak bertentangan) yang mendukung root. Ini secara efektif mengubah serentak dari sinkronisasi ke utilitas mirroring. Anda juga dapat menentukan -force newer(atau -force older) untuk memaksa Unison untuk memilih file dengan modtime nanti (sebelumnya). Dalam hal ini, -timespreferensi juga harus diaktifkan. Preferensi ini ditimpa oleh forcepartialpreferensi. Preferensi ini harus digunakan hanya jika Anda yakin Anda tahu apa yang Anda lakukan!

Misalnya (menggunakan mode soket). Mulai pendengar serentak di direktori yang Anda ingin menjadi cermin dari sesuatu yang lain. Targetkan soket itu dalam panggilan klien serentak. Angkatan menyebabkan perubahan menjadi SATU CARA dari akar yang diberikan.

cd /target/mirror/directory
unison -socket 123456 &

Di tempat lain atau di host yang sama:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Rich K.
sumber
1
Sintaks untuk file profil adalah untuk menentukan jalur ke direktori root untuk variabel gaya. Yaitu,force = /home/me/mysynchdir
Daniel
2

Sementara jawaban oleh TheToasterThatCould akan 'berfungsi', harap dicatat bahwa itu tidak akan mencadangkan dengan benar sistem file Mac "Resource Forks"

Sementara versi rsync Mac OSX adalah resource-fork aware, rsync versi linux tidak (dan kemungkinan tidak akan pernah, karena versi rsync Apple adalah spesifik-OSX dan tidak menyajikan garpu sumber daya tersebut untuk rsync di ujung lain di cara yang dapat ditangani versi rsync non-OSX). Hasil dari ini adalah bahwa sumber daya garpu tidak akan rsync'd antara mesin Mac dan linux.

Aplikasi Mac tertentu menggunakan garpu sumber daya untuk menyimpan data yang terkait dengan file tertentu. Jika Anda yakin file Anda sedang disinkronkan tidak perlu atau menggunakan garpu sumber daya, maka boleh saja menggunakan rsync.

Jika Anda ingin menyinkronkan garpu sumber daya, maka serentak akan menjadi pendekatan yang lebih baik karena (menurut serempak dokumen) itu dapat menyinkronkan garpu sumber daya.

semuanya alami
sumber
0

FreeFileSync adalah aplikasi open source yang mampu mencerminkan direktori. Itu dapat berjalan untuk sinkronisasi satu arah atau dua arah atau dalam mode "berkontribusi". Saya dapat mengatakan bahwa itu dapat melakukan pekerjaan Microsoft Synctoy. FreeFileSync dapat digunakan secara bebas di Mac OS X, Linux dan Windows.

Teo
sumber
-1

Saat ini, unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchakan berfungsi, di mana -batchtidak menunjukkan pertanyaan sama sekali

Jin
sumber