क्या मैं deja-dup (बैकअप) में पैटर्न द्वारा फाइलों को अनदेखा कर सकता हूं?


13

मेरे Déjà डुप बैकअप बहुत बड़े हो गए हैं और मैंने देखा कि उनमें अनावश्यक फ़ाइलों (जैसे *.pycफ़ाइलें, **__pycache__फ़ोल्डर्स और अन्य संबंधित अस्थायी सामान) की एक बड़ी संख्या है ।

मुझे पता है कि मैं विशिष्ट फ़ोल्डरों को अनदेखा कर सकता हूं, लेकिन क्या पैटर्न द्वारा फ़ाइलों और फ़ोल्डरों को बाहर करने का एक तरीका है?

मैंने सोचा था कि कॉन्फ़िगरेशन फ़ाइल को उपयोग करने के लिए अधिक विकल्प हो सकते हैं, लेकिन Déjà Dup एक का उपयोग नहीं करता है। इसलिए मैंने दोहराव (सीएलआई पर आधारित है) को देखा, लेकिन मैन पेज में कॉन्फ़िगरेशन फ़ाइल का उल्लेख नहीं है। मुझे पता है कि दोहरेपन फ़ाइलों और फ़ोल्डरों पैटर्न (के आधार पर अनदेखा कर सकते हैं --exclude, --exclude-filelist), लेकिन मैं कैसे साथ इस गठबंधन करने के लिए पता नहीं है देजा Dup

क्या मुझे Déjà डुप्लिकेट करना होगा और मैन्युअल रूप से डुप्लिकेट का उपयोग करना होगा? या क्या आवश्यक विकल्पों को निर्धारित करने का एक तरीका है, ताकि वे स्वचालित रूप से उपयोग किए जाएं, जब डेजा ड्यूप द्वारा दोहराव का उपयोग किया जाता है ?

जवाबों:


4

वर्तमान में डीजा ड्यूप के पास ऐसा कोई तरीका नहीं है जो इस तरह से उन्नत फ़िल्टरिंग कर सके। अपस्ट्रीम बग देखें https://bugs.launchpad.net/deja-dup/+bug/374274


जैसा कि माइकल टेरी डीजा-डुप के अनुचर हैं, यह 'अंतिम' है। इसे और भी हालिया मुद्दे पर देखें deja-dup repo जो पुष्टि करता है कि वाइल्डकार्ड अभी भी असमर्थित हैं।
म्यूज़िकफॉर्मेलन

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

** पैटर्न का उपयोग करना (अब नहीं) काम करता है क्योंकि डेजा-डब बच जाता है [*? 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. org का पता लगाएं -> सूक्ति -> deja-dup -> बहिष्कृत सूची
  2. कस्टम मान सेट करें ( अपने उपयोगकर्ता नाम के साथ leo बदलें )
['$TRASH', '$DOWNLOAD', '/home/leo/.anaconda', '/home/leo/**/node_modules', '/home/leo/**/__pycache__', '/home/leo/**/*.pyc']
  1. आपको रिबूट / री-साइनइन करने की आवश्यकता हो सकती है। मैं स्क्रीनशॉट चलाता हूं जो स्वचालित रूप से मूल्य को अपडेट करता है। मुझे पता नहीं क्यों, शायद कोई और समझा सकता है।

स्क्रीनशॉट:

अपने उपयोगकर्ता नाम के साथ leo बदलें

अपने उपयोगकर्ता नाम के साथ 'leo' बदलें

इसे इस तरह देखना चाहिए


मैंने यह कोशिश की और ~/**/node_modules'फोल्डर को नजरअंदाज' करने के लिए शो किया, लेकिन फिर भी वे बैक-अप हैं ..., इसलिए काम नहीं लगता ...
म्यूज़िकफॉर्मेलन

2

मैंने जैकब नॉर्डफ़ॉक की विधि की कोशिश की , लेकिन यह मेरे लिए काम नहीं आया (शायद वाक्यविन्यास बदल गया)।

हालाँकि, मैं सेटिंग का उपयोग कर बदल सकता था 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']"

और अपने परिवर्तनों को सत्यापित करने के लिए फिर से प्राप्त करें।


0

अफसोस की बात है कि न तो डुप्लिकेट और न ही डेजा ड्यू एक कॉन्फ़िगरेशन फ़ाइल का उपयोग करता है :( लेकिन एक संभावित समाधान हो सकता है, उपयोगकर्ता @mterryने ऊपर दी गई बग रिपोर्ट में निम्नलिखित का उल्लेख किया है:

यदि आप बहिष्कृत सूची को gconf-edit करते हैं और " **/parts" की तरह पैटर्न जोड़ते हैं , तो पैटर्न को डुप्लिकेट करने के लिए पास किया जाता है और सब कुछ अपेक्षित रूप से काम करता है ... "

अब, उन gconf सेटिंग्स को इन दिनों कहाँ संग्रहीत किया जाता है?


1
org -> gnome -> deja-dupउर्फ org.gnome.DejaDup। हालांकि, मेरे लिए काम नहीं कर रहा।
कृपया

आप बहिष्कृत सूची को संपादित कर सकते हैं जैसे: gsettings get org.gnome.DejaDup बहिष्करण सूची gsettings सेट org.gnome.DejaDup बहि-सूची ['path1', 'path2']
याकूब नॉर्डफ़ॉक

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__भी गहराई पर किसी को भी बाहर रखें ।
  • पंक्ति 2: विस्तार के साथ किसी भी फ़ाइल को छोड़ दें .pyc
  • पंक्ति 6: मेरे विशिष्ट और एकमात्र Documentsफ़ोल्डर को शामिल करें।
  • लाइन 7: इस तरह के रूप फ़ोल्डर मेरे सारे अन्य घर को बाहर Pictures, Videos, Downloads, इस कर सकते हैं रोक नहीं है कि आदि नोट Documentsके रूप में यह पहले से ही लाइन 6 में मिलान किया गया था शामिल नहीं की जाएगी! आदेश मायने रखता है!

1
मुझे लगता है कि आप include_list.txtकमांड लाइन से सीधे डुप्लिकेट कॉल करके अपनी फ़ाइल का उपयोग करते हैं ? क्या आप उबंटू के डिफ़ॉल्ट Déjà Dup GUI के साथ इस तरह की एक पैटर्न सूची बनाने के लिए किसी भी तरीके से जानते हैं? (BTW: ऐसा लगता है कि मेरे लिए एक फ़ाइल नामकरण और बहिष्करण पैटर्न नामकरण को भ्रमित करने वाला है include_list.txt...)
सलीम बी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.