web-dev-qa-db-ja.com

unisonのパスオプションを複数のパスで使用するにはどうすればよいですか?

Unisonを使用して次の場所を同期したい:

  • / home/user/Audiobooksと/ shared/Audiobooks
  • / home/user/Music with/shared/Music
  • / home/user/Podcastsと/ shared/Podcasts

ユニゾンコマンドラインパラメータは何でしょうか?これに基づいて、私は推測することができます

1つ以上のパス設定が指定されている場合、Unisonはこれらのパスとその子のみを同期します。 (これは、たとえば1つのディレクトリのみの高速同期を実行する場合に役立ちます。)パス設定は文字通りに解釈されることに注意してください。これらは正規表現ではありません。

これが私の推測です。あれは正しいですか?

unison -ui text /home/user /nocrypt/Shared -path Audiobooks -path Music -path Podcasts 

プロファイルを使用することもできます。ヘルプドキュメントを読んで、私が適応させた例を見つけました。しかし、それが正しいかどうかはわかりません。

ヘルプドキュメントからの変更:これは、他のいくつかの便利な機能を示す、より洗練されたプロファイルです。

# Roots of the synchronization
root = /home/user
root = /shared

# Paths to synchronize 
path = Audiobooks
path = Music
path = Podcasts

あれは正しいですか?

この質問を書き終える頃には、ほとんど理解できています。上記の両方の方法が正しいと思います。ユニゾンの優れている点は、実際の同期と同じように「ドライラン」を実行できることです。デフォルトのアクションは常に「アクションなし」です(すべての変更が提示された後)。今すぐテストして、機能するかどうかを確認します。答えは必要ないと思いますが、この質問は参考のためにここに残しておきます(そして、これが機能したかどうかを確認して自分で答えます)。

13
MountainX

はい、質問で述べたことが正しいことを確認しています。

5
MountainX

ルートがルートディレクトリであるかのように使用でき、必要なすべてのパスを定義できます。

# Roots of the synchronization
root = /
root = ssh://x.x.x.X//

# Paths to synchronize
path = /etc/httpd
path = /var/www
1
Akshay Kumar

あなたの質問のように、私は参考のためにこれを投稿しています。

変数を組み合わせて組み合わせることができます。たとえば、シェル変数を使用する場合は、通常どおりプロファイルから開始しますが、コマンドの呼び出し中にシェル変数を含む引数を渡します-これらの変数を通常は使用できないためですプロファイルファイル内から。

root = $HOMEは機能しているようですが、root = ssh://Host//$HOME$HOMEは変数として認識されません。

documents.prf

# select folders
  path = Documents
  path = Desktop
# options
  batch = true

次に使用できるコマンドは、次のようになります。

unison documents -root $HOME -root ssh://user@remotehost//home/$USER
1
jhat