複数のコンピューターを使用している場合、どのようにすべてを同期しますか?[閉まっている]


31

現在、4台または5台のコンピューターがあり、すべてを同期するためのより良いシステムが必要です。私はgitとgithubを使用してプログラミングプロジェクト用にファイルを同期していますが、データベース、.bash_profileファイル、bashスクリプトなどがあります。ファイルを同期する代わりに、あるコンピューターから別のコンピューターにsshするだけです。しかし、これはかなり混乱しています。私のコンピューターのいくつかはUbuntuであり、他のコンピューターはOS Xです。

複数のパソコンにまたがるワークフローを管理するための提案はありますか?


1
ネットワーク共有フォルダーを試す必要があるかもしれません
ダン

1
@rwong @danはそもそも「通常の答え」を探しているという印象を受けます。rsyncと共有フォルダーの使用がどのように役立つかを説明した回答を投稿することを検討してください。
アダムリア

1
非常に慎重に。
-greyfade

4
これは本当にプログラミングに固有のものではありません。おそらくSUに移行する方が良いでしょうか?
ウォルター

1
@FarmBoy-それらの多くは実際には単なるファイルでもあるため、DBのタイプに依存します...私はまだこれをプログラミングの問題ではなくファイル同期の問題と考えています。そして、SUにはもっと多様な答えがあると思います。ちょうど私の2セント。
ウォルター

回答:


15

GitリポジトリーにはGitを、その他すべてにはUnisonを使用します。いくつかのユニゾンプロファイルがあるので、特定のものを同期できます。また、bisonスクリプトを使用して、unison syncsをすべて同期してから、すべてのgitリポジトリを更新して更新します。

コンピューターの同期に関しては、Unisonが私の頭に浮かぶ最高のものです。


1
データベースをどのように同期しますか?これはDDLとDMLの両方の変更に対して機能しますか?
エリックウィルソン

現時点では、SQL /データベース関連のものを扱っていないので、私には当てはまらないので、その質問に答えることはできません。元の質問のその部分を見逃し、すべてのコードとプロファイル情報を同期させる方法に答えていました。
sp0rus

Unisonを使用すると、バージョンの競合が発生しますか?それらをどのように最小化しますか?
ダン

何かを変更する前に常に手動で同期するため、ファイルの最新バージョンを編集しています。また、コンピューターを同期するために毎晩cronジョブを設定しています。このシステムに固執することで、バージョンの競合に関する問題は発生していません。逸脱する必要があり、競合が発生した場合、それを他のものに置き換えるものを選択することができました。
sp0rus

15

ドロップボックス

ファイルを同期するには、DropBoxが認識しているフォルダー内でファイルを操作するのと同じくらい簡単です。メインページのビデオで説明の大部分が行われるため、機能についてコメントしませんでした。バージョン管理されたファイルを変更するだけで、DropBoxは自動的にアップロードし、DropBoxを備えた他のすべてのマシンは自動的に最新バージョンをダウンロードします。

データベースのようなものについては、シンボリックリンクが行く方法かもしれません。DropBoxフォーラムのこのスレッドは、MySQLデータベースを同期する方法について少し洞察を提供します。または、「エクスポート/インポート」スクリプトルートを実行するか、実際にMySQLを使用している場合は、レプリケーションその実装方法を確認できます(これは、DropBoxを使用しないMySQLの機能です)。


Dropboxを使用してデータベースを同期する方法がわかりません。
エリックウィルソン

Dropboxディレクトリとの間で定期的なデータベースダンプ/復元をスケジュールできます。
badgerr

6
@badgerr OPが言及したさまざまなシナリオでDropboxを使用する方法を含めるように、回答を拡大することを検討してください。
アダムリア

いです。私はむしろDbMaintainのようなスクリプトランナーを使用します。
エリックウィルソン

1
-1アンナが言及した理由のため。あなたの答えを展開すると、投票は取り消されます
;

7
  • ドロップボックス
  • Github
  • ブックマーク/履歴/ Firefox設定用のFirefox Sync

1
素直な答えとDropboxが一番上にある場合は+1。オープンソースコミュニティとの最近のPR問題に関係なく、dropboxは私にとって非常に貴重です。
ファルマーリ

3

もちろん、.bash_profileファイルとbashスクリプトを含むすべてのコードにgithubを使用できます。

Hudson / Jenkins CIサーバーは、複数の環境を維持するのに適しています。DbMaintainと共に使用すると、データベースの同期も維持できます。

私のチームはこの組み合わせを使用して、4つのペアリングステーション、さまざまなラップトップ、CI、TEST、およびQA環境を同期します(サーバーと独自のDBのコピーを使用)。

これにはWindowsマシン、Macラップトップ、Linuxサーバーが関係するため、非常に柔軟です。


2

マシン固有のセットアップ用のブランチを使用して、ドットファイルをgitに保存します。これにより、新しいマシンをすばやくセットアップでき、スクリプトを共有して最新バージョンに保つことができます。


1

おそらく、一歩後退して、なぜそんなに多くのコンピューターが必要なのかを自問する必要があるでしょう。それは、彼が所有する5台の車で、すべてのものを同じに保つ方法を尋ねる人のようなものです。

プライマリマシンではできないことと、各マシンで何をするかを自問することをお勧めします。

あなたは良いノートパソコンを検討しましたか?

これらがすべて自宅にある場合は、サーバーをセットアップして、そこにすべてのものを保管できます。次に、バックアップするデータを備えたマシンが1台だけあります。

それらがリモートマシンである場合、Linux vpsを取得して、そこにリモートのものを保存することを検討してください。github、dropboxなどのような無料のオンラインサービスを使用しないでください。これらのサービスは、誤ったタイミングで消えてしまう可能性があります。

AWSを使用してアイテムを保管しないでください。0.1ドル/月/ GBで、100ドル/月/ TB、または1200ドル/年/ TBです。そのために、約15台のWestern Digital 1TBハードドライブを購入できます。

ビジネスを営んでお金をmakeけるなら、最高のサービスを利用してください。しかし、正直なところ、ハードドライブに勝って大量のデータを移動することは困難です。32GBマイクロUSBドライブでさえ、爪のサイズであり、多くのデータを移動できます...

クラウド、プライベートクラウドがあります。たぶんPersonal Cloudがあるはずです...


ヒントをありがとう。私は5台のコンピューターを持っていますが、3台しか使用していません。3台必要です。自宅に1台のUbuntuサーバー、1台のThinkpad Ubuntuラップトップ(主力製品)、1台のiOS開発用Macbook Pro
11年

0

Subversionから移行されたGitは、CVSから移行されました。、およびのためのfgit(免責事項:私による)。pull pushstatusgc


0

そこで何らかのクラウドインフラストラクチャを作成することを検討しましたか?どのワークステーションからservice / file / thingを取得するかを抽象化する唯一の方法のようです。

ここにUbuntu Cloudへのリンクがあります。


0

現在、Dropboxの代わりとしてWualaを使用しています。1つの問題は、Linuxでのフォルダー監視の欠如です。基本的には、すべてのファイルを毎分スキャンします。次のバージョンでは、彼らが言うようにその方法を修正する必要があります。

inotifyの実装方法が原因で、数万のフォルダー(gitリポジトリーなど)がある場合、Linuxでのリアルタイム同期には問題があります。単一のフォルダーごとに1つの「ウォッチ」が必要です。たとえば、https://stackoverflow.com/questions/535768/what-is-a-reasonable-amount-of-inotify-watches-with-linuxを参照してください。


Wualaは現在死んでいます:en.wikipedia.org/wiki/Wuala
グウィネスルウェリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.