複数のコンピュータをDropboxと同期したままにするために、次のことを試しました。
方法A.
- コンピュータ1:Dropboxのインストール、Dropboxフォルダ:/ Dropbox /
-コンピュータ1:このフォルダにホームフォルダへのシンボリックリンクを作成する
$ln -s /home/ /Dropbox/
- コンピュータ2:dropboxのインストール、dropboxフォルダ:/ Dropbox /(コンピュータ1のファイルでいっぱい)
- コンピュータ2:同じローカルファイルへのシンボリックリンクでファイルを上書きしよう
$ln -sfn /home/ /Dropbox/
ln: `/Dropbox/home': cannot overwrite directory
したがって、このアプローチは失敗します。エラーを修正するための提案がある人はいますか?それとも別の方法ですか?これまで私が思いついたアプローチは次のとおりです。
方法B.すべてのファイルを再帰的にシンボリックリンクするスクリプトを作成できますが、新しいファイルをインポートするにはスクリプトを実行する必要があるため、その方向に行きたくありません。
方法C. rsyncを使用してホームフォルダとDropboxフォルダを同期します。自動的に更新されないので気に入らない更新するにはrsyncを呼び出す必要があります。毎分実行されるcronjobにrsyncを置くことは理想的な解決策のようには見えません。
誰もが方法Aを修正したり、方法Dを提案したり、方法BまたはCを採用するよう説得するのに役立ちますか?
答え1
Dropboxが機能するディレクトリを指定する方法はありませんか? Dropboxに/ homeを使用するように指示することはできませんか?
そうでない場合は、シンボリックリンクを完全にスキップし、複数のバインドマウントを使用してこれを実行できます。言い換えれば:
mount --bind /home /Dropbox
両方のコンピュータで。
答え2
私は方法Aの問題に対する解決策を考えました。
- コンピュータ2:通知アイコンを右クリックし、[同期の一時停止]を選択してDropboxの同期を一時停止します。
- コンピュータ2:Dropboxのすべてのファイルを削除します。オプションで、そのファイルをホームフォルダに移動してローカルファイルを上書きしますが、ここではどちらの場合もファイルが削除されます。同じ)
- コンピュータ2:シンボリックリンクは、コンピュータ1と同様に、dropboxフォルダにあるデフォルトのフォルダリンクです。
$ln -s /home/ /Dropbox/
-コンピュータ2:Dropboxデーモンの同期を再開します。シンボリックリンクはまったく同じファイルを指すため、同期は発生しないでください。
メインフォルダはそのまま残り、dropboxはバックグラウンドの他のフォルダで必要な作業を行うので、これは良い解決策だと思います。しかし、それは非常に簡単ではありません。
また、方法A2を考えて、代わりにここで共有します。
- コンピュータ2:ホームフォルダの元のファイルを削除し、ホームフォルダのDropboxファイルへのシンボリックリンクを作成します。
欠点:これにより、ホームフォルダ内のすべてのアイコンにリンク矢印が表示されます。
これで、ホームフォルダにファイルの代わりにシンボリックリンクがあるので、ファイル操作を実行するときにこれを知る必要があります。