Saya memiliki tiga komputer di rumah, dan ingin /home/
pohon folder disinkronkan di antara ketiganya.
File / folder apa pun (kecuali yang disembunyikan) yang dimodifikasi / ditambahkan / dihapus di salah satu dari tiga komputer diperbarui di dua lainnya.
Apakah rsync
cukup untuk melakukan ini? dan bagaimana?
Jawaban:
Berikut adalah daftar hal-hal yang berpotensi memecahkan masalah ini, masing-masing menyeimbangkan pertukaran yang harus Anda buat secara berbeda sehingga Anda harus membuat pilihan sendiri dan mencoba sendiri:
Serentak - seperti yang disebutkan oleh orang lain, ini dijalankan secara manual, tetapi sangat cepat, dapat diandalkan dan efektif. Membutuhkan kedua mesin yang disinkronkan untuk hidup pada saat yang sama. Ini memiliki antarmuka pengguna yang bagus untuk memungkinkan Anda menangani konflik yang hampir tak terhindarkan, dan melacak dan menyebarkan penghapusan dengan benar. Aplikasi / paket grafis disebut serempak-gtk.
OwnCloud - Penyimpanan cloud dijalankan di server Anda sendiri. Anda akan membutuhkan mesin untuk berangkat. Membutuhkan pengaturan yang wajar. Menjalankan server web Apache 2 lengkap dan database SqlLite atau MySQL di server. Bekerja mirip dengan Dropbox dengan klien desktop, tetapi server berada di bawah kendali Anda. sunting: OwnCloud baru-baru ini telah melalui beberapa perubahan dalam bagaimana proyek dijalankan, dan sekarang memiliki sumber terbuka sepenuhnya baru (yaitu tidak ada edisi 'perusahaan' sumber tertutup) dengan kedok NextCloud , (lihat wawancara youtube ini dengan pengembang OwnCloud asli untuk lebih jelasnya).
SparkleShare - menggunakan git untuk menjaga file tetap sinkron. Menurut beranda: bagus untuk banyak file kecil, tidak bagus untuk banyak file besar seperti musik atau koleksi foto.
Seafile - Menyediakan komponen server yang dapat Anda instal di mesin lokal. Seafile menggunakan model data yang mirip dengan git untuk melacak perubahan. Menyediakan klien sinkronisasi untuk desktop, tablet, dan smartphone. Posting blog yang menjelaskan pengaturan dapat ditemukan di http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/
Osync - "... alat sinkronisasi file dua arah yang ditulis dalam bash dan berdasarkan rsync. Ia bekerja pada direktori lokal dan / atau jauh melalui terowongan ssh. Ini terutama ditargetkan untuk diluncurkan sebagai tugas cron" (teks dari situs web)
PowerFolder - proyek GPL v2 berbasis java. Situs web utama mendorong penawaran komersial sehingga tidak jelas cara menggunakan file .jar yang disediakan.
Rsync - cepat dan efektif dan telah ada selama beberapa dekade, namun itu tidak menyimpan sejarah sehingga Anda harus memilih arah untuk memutuskan apakah file tersebut baru atau dihapus. Alat grafis tersedia seperti gwRsync .
Lsyncd - memonitor folder / file untuk memicu replikasi rsync
dvcs-autosync - ditulis dengan python, menggunakan git untuk menyimpan dan berbagi perubahan antar mesin, dan XMPP untuk mengkomunikasikan perubahan.
git-annex - alat baris perintah untuk men-shunting file, berdasarkan git. Ada langkah-langkah ilustratif di sini: http://git-annex.branchable.com/walkthrough/
Tonido - freeware. Menyediakan aplikasi desktop yang akan membagikan file ke perangkat lain. Juga menyediakan penawaran cloud komersial, dan komputer plug TonidoPlug.
BitTorrent Sync (freeware) - sinkronisasi file peer-to-peer berdasarkan BitTorrent. Saya tidak tahu banyak tentang ini karena saya tidak akan menggunakannya karena itu bukan open source dan tidak percaya untuk menyimpan data saya di dalam LAN saya, silakan mengedit jawaban ini dengan informasi yang lebih baik / pengalaman nyata.
SyncThing - Dikembangkan sebagai alternatif sumber terbuka untuk BitTorrent Sync. Saat ini tidak memiliki beberapa fitur canggih dari BitTorrent Sync, seperti rekan yang tidak tepercaya. Itu sedang dalam pengembangan aktif.
Layanan yang diinangi secara komersial seperti dropbox, ubuntu satu, google drive, apple iCloud semuanya cepat murah dan nyaman, namun semuanya memerlukan kepercayaan perusahaan dengan semua data Anda, dan memerlukan koneksi internet yang cukup cepat.
Git / subversi - Gunakan sistem kontrol sumber secara langsung. Benar-benar manual dan bisa menjadi pendekatan yang sedikit rumit namun populer dengan beberapa pengguna yang akrab dengan sistem ini karena menggunakannya sebagai alat pemrograman.
CloudFS - menyinkronkan seluruh sistem file, berbasis teknologi cluster
NFS mount - pada dasarnya rumah Anda tinggal di satu mesin dan Anda mengaksesnya melalui jaringan, tidak baik untuk laptop yang Anda bawa. Info lebih lanjut: http://www.linuxjournal.com/article/4880
Faktor-faktor yang perlu dipertimbangkan dalam membuat keputusan Anda:
Server pusat - beberapa solusi mengharuskan mesin selalu menyala (atau setidaknya saat Anda perlu menyinkronkan) agar mesin lain dapat melakukan sinkronisasi. Ini bisa menjadi salah satu mesin Anda yang ada, atau mesin yang terpisah seperti NAS. Waspadai tagihan listrik yang meningkat.
Otomatis / Manual / Dijadwalkan - Cara terbaik untuk menghindari penyelesaian konflik di mana ada sesuatu yang berubah pada lebih dari mesin adalah dengan memiliki program pada setiap mesin yang mengawasi perubahan dan sinkronisasi segera, dengan cara ini Anda mengurangi peluang untuk berakhir dengan banyak versi. Dengan proses manual Anda harus selalu ingat untuk menjalankan sinkronisasi.
Akses jarak jauh - apakah Anda ingin menyinkronkan jauh dari LAN Anda (alias rumah), pikirkan tentang implikasi keamanan ini.
Keamanan - apakah data Anda meninggalkan jaringan Anda dienkripsi atau tidak, seberapa aman transfer antar mesin. Bagaimana jika seseorang menangkap data Anda saat bepergian dan kemudian enkripsi ditemukan memiliki kekurangan? Siapa yang mengendalikan server yang menyimpan data Anda, apakah data dienkripsi, dapatkah Anda mempercayai pihak ketiga? Apakah Anda harus menyodok lubang di router Anda untuk mendapatkan akses jarak jauh. Berapa lama file 'dihapus' dan meta-data terkait bertahan pada perangkat yang disinkronkan dan di server pusat. Apakah Anda menyinkronkan antara penyimpanan terenkripsi dan tidak terenkripsi?
Memindahkan folder besar - solusi yang saya coba semuanya memiliki masalah bahwa ketika Anda memindahkan / mengganti nama file atau folder sinkronisasi tidak memahami ini dan mengunggahnya lagi sebagai yang baru dan kemudian menghapus salinan lama. Tolong bantu dengan menandai solusi apa pun di atas yang mampu menangani ini (saya menduga solusi berbasis git lakukan karena git tidak menderita karena ini karena pengalamatan berbasis konten yang digunakan tetapi tidak tahu pasti seperti apa yang saya miliki) dapat menggunakannya).
Kapasitas disk
Cadangan - sinkronisasi bukan cadangan. Hapus file penting karena kesalahan dan banyak dari yang di atas akan dengan senang hati menghapus semua salinan Anda yang lain. Saya sarankan membaca artikel Mat Honan tentang peretasan untuk mengetahui apa yang bisa terjadi jika Anda memasukkan semua telur digital Anda ke dalam satu keranjang digital, jadi untuk berbicara.
Saya sarankan untuk tidak menyinkronkan seluruh folder rumah, tetapi malah memilih folder tertentu untuk disinkronkan seperti
Documents/
,Pictures/
dll. Ini akan menghindari rasa sakit karena dipaksa untuk berurusan dengan masalah kecepatan / kinerja / ruang disk yang secara otomatis mensinkronkan semuanya. Itu juga menghindari keharusan memelihara daftar pengecualian.Ketika saya terus mencoba dan menemukan sesuatu yang bekerja untuk saya secara pribadi, saya akan mencoba dan terus memperbarui jawaban ini dengan info yang bermanfaat. Saya telah mengumpulkan informasi dari semua jawaban lain menjadi satu jawaban lengkap.
Referensi:
peretasan / semua /
sumber
Serentak bisa menjadi kandidat yang baik:
Sudah melakukan sinkronisasi 2 arah. Lihat pembaruan di bawah.
Saya telah belajar bahwa ada sangat sedikit hal yang tidak dapat dilakukan rsync, dan itu mungkin dapat memberikan solusi yang sama atau lebih baik, tetapi Anda harus menunggu ahli rsync muncul untuk solusi itu.
Pembaruan: Ya, Unison dapat menyinkronkan lebih dari 2 mesin. Dari manual pengguna mereka :
sumber
Bagaimana kalau menaruh file Anda di sistem kontrol versi seperti SubVersion atau git?
Saya tidak versi seluruh dir rumah saya, tetapi hanya beberapa subdir dengan beberapa hal penting. Tapi saya berpikir untuk pindah ke git karena sepertinya lebih baik untuk jenis pekerjaan ini. ( pencarian cepat akan mengirim Anda ke arah yang benar ).
Semoga berhasil
Pembaruan : Efek samping yang bagus dengan git adalah mudahnya memiliki file khusus komputer, karena Anda hanya perlu memiliki cabang untuk komputer itu (dan pada git Anda mendapatkannya secara default). Jadi Anda tidak perlu memiliki file yang persis sama di semua komputer, mereka hanya perlu serupa, dan memiliki cabang "utama" yang sama dengan hal-hal yang Anda inginkan di semua komputer yang berbeda.
sumber
Masalah utama Anda ketika mencoba melakukan ini adalah memutuskan bagaimana menggabungkan perubahan, menyebarkan propaganda, dan menyelesaikan konflik. Ini sulit dilakukan dengan cara yang sepenuhnya otomatis, terutama jika Anda memiliki 3 pengaturan komputer yang digunakan oleh banyak orang.
Jika Anda memisahkan pengguna, banyak hal menjadi lebih sederhana. Karena satu pengguna tidak dapat berada di dua tempat sekaligus (dan karena itu menimbulkan konflik) Anda kemudian dapat mengatur pekerjaan rsync untuk dijalankan saat login untuk "mendapatkan perubahan" dan keluar untuk "mendorong perubahan" ... ke salah satu komputer Anda yang akan menjadi master ... jadi pada level granularity ini Anda akan menyinkronkan / home / myuser setiap kali daripada seluruh / home /. Penyempurnaan tambahan (jika orang tidak keluar) akan menjalankan skrip push setelah beberapa saat tidak aktif.
Ada banyak solusi potensial lainnya, tetapi tidak ada yang secara ajaib menyelesaikan masalah ini sejauh yang saya ketahui. Langkah pertama mungkin adalah memikirkan bagaimana Anda menggunakan mesin dan membuat kebijakan sinkronisasi yang sesuai dengan perilaku pengguna Anda.
sumber
Saya pikir Anda dapat mencapai apa yang Anda inginkan dengan lebih baik dengan memasang folder rumah NFS. Lihat artikel ini http://www.linuxjournal.com/article/4880
sumber
Ini tidak akan sepenuhnya memberikan solusi, tetapi ini akan memberi Anda permulaan:
Atur pekerjaan cron sesering mungkin untuk mensinkronisasi ulang file. Saya menggunakan perintah seperti berikut:
Ini akan menggunakan rsync untuk hanya menyalin perubahan yang diperlukan, bukan menyalin ulang semuanya setiap kali perintah dijalankan.
--stats dan --progress adalah opsional dan mungkin harus dikecualikan dari skrip Anda
isi file rsync_backup_excludes.conf saya adalah:
sumber
Lihat lsyncd
sumber
Lihatlah dropbox http://www.getdropbox.com/ Cross platform Win / Linux / Mac
sumber
Pasang
/home
dari satu komputer ke dua lainnya. Automount bekerja dengan sangat baik untuk ini.sumber
Ubuntu One mungkin yang Anda cari. Sayangnya ini masih dalam tahap beta, dan saya tidak punya pengalaman dengannya, jadi saya tidak yakin apakah itu akan berhasil untuk Anda.
sumber
Jika Anda juga ingin menyinkronkan konfigurasi - alat yang disebutkan di atas benar-benar tidak berdaya: konfigurasi sering diubah, dan banyak file log akan membuat konflik sehingga tidak dapat digabungkan.
Deceision saya sederhana, dan bodoh :) Saya punya workstation Master, dan semua file dari "~" hanya disalin ke "Slave" kedua. Saat saya menyadari saya perlu memodifikasi sesuatu - saya melakukannya di Master, dan Slave menangkap perubahan ini pada sinkronisasi.
Juga, beberapa skrip bash harus berjalan berbeda pada mesin ini, jadi saya mengedit /etc/bash.bashrc saya:
Sekarang, skrip tahu host mana yang mereka layani;)
sumber
Coba dvcs-autosync .
Ini didasarkan pada git, menggunakan XMPP untuk memberi tahu klien terkait tentang perubahan file dan bereaksi pada peristiwa perubahan file melalui perubahan inode. Jadi selalu mendapat informasi segera setelah perubahan file, dalam kasus konflik itu bergantung pada metode terbukti git.
Saya telah menggunakannya untuk sementara waktu sekarang sebagai pengganti Dropbox melalui kunci publik SSH dan itu benar-benar berfungsi.
sumber
PowerFolder - Menyinkronkan File, Folder Sinkronisasi, Penyimpanan Jarak Jauh, Pencadangan dan Berbagi File Pribadi. Sinkronkan PC rumah dan kantor, bagikan gambar liburan atau bekerja bersama dalam dokumen. Teknologi peer-to-peer aman PowerFolder berfungsi melalui Internet atau LAN.
sumber
Solusi yang akan saya pertimbangkan:
Dropbox.
Kelemahan utama: tidak gratis untuk jumlah data yang masuk akal. Kalau tidak, ia bekerja tanpa cacat IMHO
Server NAS. Letakkan file Anda di server NAS, mereka menjadi cukup terjangkau akhir-akhir ini (dari $ 150 atau lebih) dan yang bagus tidak menghabiskan banyak energi. Tidak pernah ada masalah sinkronisasi.
Kelemahan utama: lebih lambat dari salinan lokal
sumber
Saya menggunakan SyncTwoFolders untuk Mac dan Syncback untuk PC - yang pertama untuk tiga mac saya di rumah (termasuk laptop), dan yang kedua untuk PC saya di kantor. Kedua program memiliki berbagai opsi cadangan dan sinkronisasi yang menjadikannya mudah setelah pra-setel diatur. Mudah sekali! Saya yakin ada versi lain dari perangkat lunak serupa yang tersedia untuk Linux dan Ubuntu.
sumber
Anda dapat menggunakan skrip sinkronisasi seperti osync yang dapat menyebarkan file yang terhapus dan hanya memperbarui yang dimodifikasi. http://www.netpower.fr/osync osync berbasis rsync tetapi dapat menangani banyak skenario sinkronisasi antara folder lokal atau yang jauh melalui ssh.
sumber