web-dev-qa-db-ja.com

2台のコンピューター間でフォルダーを同期し、ファイルシステムウォッチャーを使用して、ファイルが変更されるたびにすぐに複製されるようにします。

私が持っています:

  • sSH経由でIP 203.0.113.0ポート1234に接続するLinuxサーバー

  • ホームコンピューター(ルーターの後ろ)、パブリックIP 198.51.100.17、DebianまたはWindows + Cygwinのいずれか

フォルダーを作成する最も簡単な方法は何ですか/home/inprogress/同期(両方向)、少しrsyncに似ていますが、ファイルシステムウォッチャーを使用なので、ファイルが変更されるたびに、反対側ですぐに複製されますか? (つまり、手動で同期プログラムを呼び出す必要はありません)

サーバーがヘッドレスなので、コマンドライン/ GUIなしのソリューションを探しています。

Linux/Debianの組み込みソリューションはありますか?

20
Basj

@Kusalanandaのコメントに続いて、私はようやく数時間かけて Syncthing のテストをこのユースケースに費やしました。両側の変更を自動的に検出し、レプリケーションは非常に高速です。

例:お気に入りのメモ帳ソフトウェアのserver.pyでローカルで作業していると想定して、CTRL + S(保存)を押します。数秒後、遠隔地のサーバーに(ポップアップダイアログなしで)自動的に複製されます。

私が気付いた素晴らしいことの1つは、Syncthingを使用して自宅のコンピューターとサーバーのIPについて考える必要がないことです。各「デバイス」(コンピューター、サーバー、電話など)には一意のDeviceIDがあり、別のデバイスとのID、それは彼らが互いに接続する方法を自動的に見つけます。

実行するには:

  • 自宅のコンピューター側(WindowsまたはLinux):

    通常のSyncthingブラウザー内設定ツールを使用する

  • VPS側:

    まず、VPSをポート転送に接続します。

    ssh <user>@<VPS_IP> -L 8385:localhost:8384
    

    後者のオプションは、ポート8384でリッスンしているVPSのSyncthing Web構成ツールをホームコンピューターのポート8385にリダイレクトします。

    次に、VPSでこれを実行します。

    wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-AMD64-v0.14.52.tar.gz 
    tar xvfz syncthing-linux-AMD64-v0.14.52.tar.gz
    Nohup syncthing-linux-AMD64-v0.14.52/syncthing &
    

    次に、ホームコンピューターのブラウザーで http:// localhost:8385 を開きます。これがVPSのSyncthing構成になります!


私が試した他の解決策:


今気付いたSyncthingのその他の利点:

  • config.xmlfsWatcherDelayS10から2秒に減らすと、CTRL + Sを実行してから2秒後に(+アップロードする時間、つまり小さなテキストファイルの場合は1秒)他のコンピュータ上にある

  • 同じローカルネットワークにある2台のコンピューターを同期する場合(DeviceIDを互いに与えるだけで、ローカルIPアドレスを気にする必要はありません)、自動的にになりますインターネット経由で移動する必要はありませんが、ローカルで処理できます。これはすばらしいことで、Wi-Fi経由で同じホームルーターに接続されているphone <--> computerの非常に高速な転送(4 MB /秒!)同期を可能にします。 Dropbox同期のADSL! (私のADSLはアップロード時に100 KB /秒に制限されています)

23
Basj

nison のように聞こえるはずです。

Unisonは、OSX、Unix、およびWindows用のファイル同期ツールです。これにより、ファイルとディレクトリのコレクションの2つのレプリカを異なるホスト(または同じホスト上の異なるディスク)に格納し、個別に変更して、各レプリカの変更を他のレプリカに伝達することで最新の状態にすることができます。

オプションのGUIがあり、競合をある程度簡単に解決できますが、テキストベースのユーザーインターフェイスを使用してすべてを実行することもできます。完全な無人操作の競合を解決する方法を事前に定義することもできます。

必要なときにいつでも同期をトリガーするファイルウォッチャー(fsmonitor)コンポーネントがあります。詳細は マニュアル で「リピート時計」を検索してください。

Debianには正しいバージョン(2.48以降)があるようです そのままパッケージ化されています

16
TooTea