Borg: 「整理」のためにアーカイブにタグを付けますか?

作成日 2016年04月06日  ·  5コメント  ·  ソース: borgbackup/borg

現在、 borg pruneは、共通のプレフィックスによってプルーニングされるアーカイブのみを制限できます。 これは、アーカイブ名の「プルーン関連」部分が前面にある名前付けスキームで機能します(例: system-<hostname>-<date>userdata-<hostname>-<date> )が、他の目的では実際には機能しません。

タグ、つまり任意の文字列のリスト(タグの区切り文字となる「、」を除く)を追加すると便利です。 「prune」および「--prefix」を使用するその他のコマンドは「--tags」オプションを取得し、_all_(または_any_、discuss)タグがリストされているアーカイブのみが影響を受けます(このため、これらは不変である必要があります)。


編集:別のアプローチかもしれませんが、追加のメタデータフィールドはなく、後方適用可能です。

名前はすでにそこにあります。 --tags some,tags (ここでは常に,を区切り文字として使用しますか?)や--tag-delim - (デフォルトでどのデリムを使用しますか?)のようなものを追加できます。

tags = set(args.tags.split(args.tag_delim))
for archive in ...:
  if set(archive.name.split(args.tag_delim)) <= tags:
    ...  # prune
enhancement

最も参考になるコメント

タグ/エイリアスのこの機能リクエストをバンプしたいと思います。

gitユニバースで多くの時間を過ごした後、特定のボーグアーカイブに追加のタグを適用したいと思っています。

現在、アーカイブ名にタグを埋め込むことは可能ですが、アーカイブに複数のタグを使用する場合は非常に手に負えません。 たとえば、私はすでにアーカイブ名を使用して、ホスト名、タイムスタンプ、および1つまたは2つの他のフィールドを埋め込みます。 また、「@ latest」や「@ release-1」などのタグを追加したいと思います。 これはすぐに厄介になります。 さらに悪いことに、 @ latestなどのタグをあるアーカイブから別のアーカイブに移動したい場合があります。

ボーグを使用してファイルをバックアップしているだけの場合(当然のことながら、本来の使命)、おそらくタグはそれほど必要ありません。 しかし、私のように、データ分析パイプラインで使用される非常に大きなファイルをアーカイブするなど、他の状況でborgの重複排除が非常に役立つことがわかった場合は、既存のアーカイブに複数のタグを割り当てる機能が非常に重要になります。

現在、私の回避策は、私が考案した命名スキームで元のアーカイブを作成し、すぐに「@」で始まる名前で複数の追加のアーカイブを作成することです-@ latest 、@ v1.0、 @ beta2 、これらの追加のアーカイブはそれぞれ、スキャン/作成に数分かかり、内容が元のアーカイブと完全に同一であるため、リポジトリに数百バイトしか追加されません。 (まあ、ファイルがそれらの数分で変更されていない限り。)

タグのメタデータを追加することで、この速度低下を解消できれば本当に便利です。

UIは次のようなものだと思います。

  • 新しいタグを作成し、それを既存のアーカイブにポイントします。
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • すべてのタグとそれらが指すアーカイブを一覧表示します
    borg tag --list [repo]

  • タグを削除すると、既存のborg deleteコマンドを再利用することも、コマンドオプションにすることもできます。
    borg tag -d [repo] [tagname]

これを検討していただきありがとうございます!

全てのコメント5件

名前とタグを混在させると、汚れた感じがします。 タグは個別のアーカイブメタデータにすることができます。

良い点ですが、ここでそれが問題ないかどうかはわかりません(設計上の決定として)。 #866は、「うーん、アーカイブ名は本当に何のためにあるのか」と思わせました。 タグ付けのためにそれを「リサイクル」することは、本当にクリーンなことではありませんが、私には非常に実用的であるように思われます(100%明示的なオプトインの場合)。 ある意味で、「タグ」は「名前」フィールドを見る別の方法にすぎません。

タグ/エイリアスのこの機能リクエストをバンプしたいと思います。

gitユニバースで多くの時間を過ごした後、特定のボーグアーカイブに追加のタグを適用したいと思っています。

現在、アーカイブ名にタグを埋め込むことは可能ですが、アーカイブに複数のタグを使用する場合は非常に手に負えません。 たとえば、私はすでにアーカイブ名を使用して、ホスト名、タイムスタンプ、および1つまたは2つの他のフィールドを埋め込みます。 また、「@ latest」や「@ release-1」などのタグを追加したいと思います。 これはすぐに厄介になります。 さらに悪いことに、 @ latestなどのタグをあるアーカイブから別のアーカイブに移動したい場合があります。

ボーグを使用してファイルをバックアップしているだけの場合(当然のことながら、本来の使命)、おそらくタグはそれほど必要ありません。 しかし、私のように、データ分析パイプラインで使用される非常に大きなファイルをアーカイブするなど、他の状況でborgの重複排除が非常に役立つことがわかった場合は、既存のアーカイブに複数のタグを割り当てる機能が非常に重要になります。

現在、私の回避策は、私が考案した命名スキームで元のアーカイブを作成し、すぐに「@」で始まる名前で複数の追加のアーカイブを作成することです-@ latest 、@ v1.0、 @ beta2 、これらの追加のアーカイブはそれぞれ、スキャン/作成に数分かかり、内容が元のアーカイブと完全に同一であるため、リポジトリに数百バイトしか追加されません。 (まあ、ファイルがそれらの数分で変更されていない限り。)

タグのメタデータを追加することで、この速度低下を解消できれば本当に便利です。

UIは次のようなものだと思います。

  • 新しいタグを作成し、それを既存のアーカイブにポイントします。
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • すべてのタグとそれらが指すアーカイブを一覧表示します
    borg tag --list [repo]

  • タグを削除すると、既存のborg deleteコマンドを再利用することも、コマンドオプションにすることもできます。
    borg tag -d [repo] [tagname]

これを検討していただきありがとうございます!

最近ボーグを試し始めたばかりですが、タグ付けのアイデアを+1したかったのです。 アーカイブがバックアップされる複数のクラウドサービスのどれを定義するためにタグが使用されるバックアップに関連するユースケースを見ることができます。 (他の議論に基づいて)クラウドバックアップは、タグを取得し、たとえば、アップロードする* .tgzファイルの作成を処理する別のツールを介して行われる可能性が高いと思います。 (バックアップ頻度を個別の検出可能なタグとして追加することもできますが、そのようなことは、ボーグ自体ではなく、バックアップツールの範囲内になります。)

考えられるタグの実装については、問題#2300を参照してください。 現在、Gmailラベルよりもgit tag似ています。つまり、アーカイブに追加のエイリアスが存在する可能性がありますが、それらは一意である必要があります。 そのアイデアを、ここで説明されているもの(複数のアーカイブに適用されるラベル)とマージするのは難しいことではないかもしれません。

このページは役に立ちましたか?
0 / 5 - 0 評価