deja-dup(バックアップ)のパターンでファイルを無視できますか?


13

私のDéjàDupバックアップは静かになり、膨大な数の不要なファイル(*.pycファイル、**__pycache__フォルダー、その他のビルド関連の一時的なもの)が含まれていることに気付きました。

特定のフォルダーを無視できることは知っていますが、パターンによってファイルやフォルダーを除外する方法はありますか?

構成ファイルを介して使用できるオプションはもっとあると思いますが、DéjàDupは使用しません。そのため、重複(CLIのベース)に注目しましたが、マニュアルページには構成ファイルについても言及されていません。重複性はパターン(--exclude--exclude-filelist)に基づいてファイルやフォルダーを無視できることは知っていますが、これをDéjàDupと組み合わせる方法はわかりません。

私は捨てなければならないのデジャDUPと使用二枚舌を手動で?または必要に応じてオプションを設定する方法はときに、自動的に使用されているように、そこにある二枚舌がで使用されているデジャDUP

回答:


4

現在、Deja Dupでは、そのような高度なフィルタリングを行う方法はありません。アップストリームのバグhttps://bugs.launchpad.net/deja-dup/+bug/374274を参照してください


Michael Terryはdeja-dupのメンテナーなので、これが「最終」です。ワイルドカードがまだサポートされていないことを確認するdeja-dupリポジトリの最近の問題も参照してください。
musicformellons

4

除外リストは次のように編集できます。

gsettings get org.gnome.DejaDup exclude-list
# remove comment to execute
# gsettings set org.gnome.DejaDup exclude-list ['path1', 'path2']

ソース:https : //answers.launchpad.net/deja-dup/+question/280954

次のように、リストに「** /。git」や「** / build」などのパターンを追加しようとしました。

gsettings get org.gnome.DejaDup exclude-list > exclude-list
gedit exclude-list
gsettings set org.gnome.DejaDup exclude-list "`cat exclude-list`"

しかし、私には**が重複に渡されなかったようです。だから代わりに私は

locate "/home/*/.svn"
locate "/home/*/build"

それらを除外リストに手動で追加しました


3

deja-dubが重複コマンドの[?*文字をエスケープするため、**パターンの使用は(もはや)機能しません。https://git.launchpad.net/deja-dup/tree/libdeja/tools/duplicity/DuplicityJob.vala#n303を参照してください

  string escape_duplicity_path(string path)
  {
    // Duplicity paths are actually shell globs.  So we want to escape anything
    // that might fool duplicity into thinking this isn't the real path.
    // Specifically, anything in '[?*'.  Duplicity does not have escape
    // characters, so we surround each with brackets.
    string rv;
    rv = path.replace("[", "[[]");
    rv = rv.replace("?", "[?]");
    rv = rv.replace("*", "[*]");
    return rv;
  }

  void process_include_excludes()
  {
    expand_links_in_list(ref includes, true);
    expand_links_in_list(ref excludes, false);

    // We need to make sure that the most specific includes/excludes will
    // be first in the list (duplicity uses only first matched dir).  Includes
    // will be preferred if the same dir is present in both lists.
    includes.sort((CompareFunc)cmp_prefix);
    excludes.sort((CompareFunc)cmp_prefix);

    foreach (File i in includes) {
      var excludes2 = excludes.copy();
      foreach (File e in excludes2) {
        if (e.has_prefix(i)) {
          saved_argv.append("--exclude=" + escape_duplicity_path(e.get_path()));
          excludes.remove(e);
        }
      }
      saved_argv.append("--include=" + escape_duplicity_path(i.get_path()));
      //if (!i.has_prefix(slash_home_me))
      //  needs_root = true;
    }
    foreach (File e in excludes) {
      saved_argv.append("--exclude=" + escape_duplicity_path(e.get_path()));
    }

    // TODO: Figure out a more reasonable way to order regexps and files.
    // For now, just stick regexps in the end, as they are more general.
    foreach (string r in exclude_regexps) {
      saved_argv.append("--exclude=" + r);
    }

    saved_argv.append("--exclude=**");
  }

3
  1. インストール dconf-editor
sudo apt install dconf-editor
  1. dconf-editor通常のユーザーとして実行します。(を使用しないでくださいsudo
dconf-editor
  1. 組織の検索-> gnome- > deja-dup- > exclude-list
  2. カスタム値を設定します(レオをユーザー名に置き換えます)
['$TRASH', '$DOWNLOAD', '/home/leo/.anaconda', '/home/leo/**/node_modules', '/home/leo/**/__pycache__', '/home/leo/**/*.pyc']
  1. 再起動/再サインインが必要になる場合があります。値を自動的に更新するスクリーンショットを実行します。他の誰かが説明できるかもしれません。

スクリーンショット:

leoをユーザー名に置き換えます

「leo」をユーザー名に置き換えます

このように見えるはずです


私はこれを試してみました~/**/node_modules...「無視するフォルダ」でショーを行いますが、それでも彼らは、バックアップされた...、そう動作するようには思えないしている
musicformellonsを

2

Jacob Nordfalkの方法を試しましたが、うまくいきませんでした(おそらく構文が変更されました)。

ただし、を使用して設定を変更できましたdconf-editor。パスでリストを変更できます/org/gnome/deja-dup/exclude-list


1

現在の除外リストを取得するには:

$ gsettings get org.gnome.DejaDup exclude-list

次のようなものを生成します:

['', '/home/me/delete_me', '/home/me/eclipse', '/home/me/Music', '/home/me/R', '/home/me/Videos']

次に、古い出力を引用符で囲み、変更を追加して、新しいリストを設定します。

$ gsettings set org.gnome.DejaDup exclude-list "[ '', '/home/me/delete_me', '/home/me/eclipse', '/home/me/Music', '/home/me/R', '/home/me/Videos', '/home/me/**/.git']"

getを再度実行して、変更を確認します。


0

悲しいことでもない二枚舌デジャDUPは、構成ファイルを使用しています:(しかし、可能な回避策があるかもしれません、ユーザーが@mterryで次のように述べたバグレポートの上にリンク:

exclude-listをgconf-editし、「**/parts」のようなパターンを追加すると、パターンは重複に渡され、すべてが期待どおりに機能します...」

さて、最近これらのgconf設定はどこに保存されますか?


1
org -> gnome -> deja-dup別名org.gnome.DejaDup。しかし、私のために働いていません。
-esmail

gsettings GET org.gnome.DejaDup除外リストgsettingsはorg.gnome.DejaDupは、除外リストを[「パス1」、「パス2」]に設定します。あなたは次のように除外リストを編集することができます
ジェイコブNordfalk

0

以下をinclude_list.txt含むファイルを使用して除外を正常に達成しました。

- /home/justin/**/.insync-trash
- /home/justin/**/__pycache__
- /home/justin/**/*.pyc
- /home/justin/**/node_modules
- /home/justin/**/Google Photos
+ /home/justin/Documents
- /home/justin/*

これ/**/は、任意のディレクトリの深さに一致させることが重要です。

ルール1:順序は重要です。最初に具体的であり、後に一般的です。

ルール2:ある行で既に一致したもの(包含または除外)は、後続の行の後続の一致によって変更することはできません。ドキュメントにはこれが記載されています。しかし、非常に紛らわしい英語で。私のほうが良いことを願っています;)上記の行は以下を達成します

  • 1行目:__pycache__任意の深さのany を除外します。
  • 2行目:拡張子がのファイルを除外します.pyc
  • 6行目:特定の唯一のDocumentsフォルダーを含めます。
  • 7行目:などのフォルダのすべての私の他の家を除外PicturesVideosDownloadsこれは止めることができないこと、などの注意Documentsが既に6行にマッチしたとして含まれているから!注文が重要です!

1
include_list.txtコマンドラインから重複を直接呼び出してファイルを使用すると思いますか?このようなパターンリストをUbuntuのデフォルトのDéjàDup GUIで機能させる方法を知っていますか?(ところで:包含および除外パターンを含むファイルに名前を付けるのはかなり混乱しているようinclude_list.txtです...)
サリムB
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.