Deja-dup'de (Yedekleme) dosyaları kalıba göre yok sayabilir miyim?


14

Benim Déjà Dup yedeklemeler sessiz büyük hale geldi ve çok sayıda gereksiz dosya (örneğin, *.pycdosyalar, **__pycache__klasörler ve diğer yapı ile ilgili geçici şeyler) içerdiğini fark ettim .

Belirli klasörleri yok sayabileceğimi biliyorum, ancak dosyaları ve klasörleri kalıplara göre hariç tutmanın bir yolu var mı?

Bir yapılandırma dosyasıyla kullanılabilecek daha fazla seçenek olabileceğini düşündüm, ancak Déjà Dup bir tane kullanmıyor. Bu yüzden yinelemeye baktım (dayalı CLI), ancak man sayfası da bir yapılandırma dosyasından bahsetmiyor. Çoğaltmanın kalıplara ( --exclude, --exclude-filelist) dayalı dosya ve klasörleri yok sayabileceğini biliyorum , ancak bunu Déjà Dup ile nasıl birleştireceğimi bilmiyorum .

Ben başından atmaya var mı Deja Dup ve kullanımı yüzlülük elle? Veya gerekli seçeneklerini ayarlamak için bir yol ne zaman, otomatik olarak kullanılırlar böylece, orada iki yüzlülük tarafından kullanılan Déjà Ayarlaması ?

Yanıtlar:


5

Hariç tutma listesini aşağıdaki gibi düzenleyebilirsiniz:

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

Kaynak: https://answers.launchpad.net/deja-dup/+question/280954

Bu listeye '** /. Git' ve '** / build' gibi desenler eklemeye çalıştım:

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

Ama bana öyle geliyor ki ** 'ler tekrar edilmedi. Bunun yerine,

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

ve bunları manuel olarak hariç tutma listesine ekledim



4

Deja-dub, yineleme komutunda [? * Karakterlerinden kaçtığından ** kalıplarının kullanılması (artık) çalışmaz. Bkz. 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. Yüklemek dconf-editor
sudo apt install dconf-editor
  1. dconf-editornormal kullanıcı olarak çalıştır . (kullanma sudo)
dconf-editor
  1. org bulun -> gnome -> deja-dup -> dışlama listesi
  2. Özel değeri olarak ayarla ( leo'yı kullanıcı adınızla değiştirin)
['$TRASH', '$DOWNLOAD', '/home/leo/.anaconda', '/home/leo/**/node_modules', '/home/leo/**/__pycache__', '/home/leo/**/*.pyc']
  1. Yeniden başlatmanız / yeniden oturum açmanız gerekebilir. Değeri otomatik olarak güncelleyen Screenshot'ı çalıştırıyorum. Nedenini bilmiyorum, belki başka biri açıklayabilir.

Ekran görüntüleri:

Değiştir aslan kullanıcı adınızla birlikte

'leo' yerine kullanıcı adınızı yazın

Bu şekilde görünmeli


Bunu denedim ve ~/**/node_modules'görmezden gelinecek klasörde' gösteriyor, ancak yine de yedekleniyorlar ..., bu yüzden işe yaramıyor gibi görünüyor ...
musicformellons

2

Jacob Nordfalk'ın yöntemini denedim , ama benim için işe yaramadı (belki sözdizimi değişti).

Ancak, ayarı kullanarak değiştirebildim dconf-editor. Listeyi yoldan değiştirebilirsiniz/org/gnome/deja-dup/exclude-list


1

Şu anki hariç tutma listesini şununla al:

$ gsettings get org.gnome.DejaDup exclude-list

hangi gibi bir şey üretir:

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

Ardından, eski çıktıyı tırnak içine alarak ve değişikliklerinizi ekleyerek yeni listenizi ayarlayın:

$ 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']"

ve değişikliklerinizi doğrulamak için get'i tekrar çalıştırın.


0

Ne yazık ki ne Duplicity ne de Déjà Dup bir yapılandırma dosyası kullanmıyor :( Ancak olası bir geçici çözüm olabilir, kullanıcı yukarıda bağlantılı hata raporunda@mterry aşağıdakilerden bahsetmiştir :

dışlama listesini gconf-düzenleyip " **/parts" gibi desenler eklerseniz desen yinelenir ve her şey beklendiği gibi çalışır ... "

Şimdi, bu gconf ayarları bugünlerde nerede saklanıyor?


1
org -> gnome -> deja-dupaka org.gnome.DejaDup. Yine de benim için çalışmıyor.
esmail

dışlama listesini aşağıdaki gibi düzenleyebilirsiniz: gsettings get org.gnome.DejaDup exclude-list gsettings set org.gnome.DejaDup exclude-list ['path1', 'path2']
Jacob Nordfalk 23:17

0

Aşağıdakileri include_list.txtiçeren dosyamı kullanarak başarılı bir şekilde hariç tutma elde ettim :

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

/**/Herhangi bir dizin derinliği kadar maç için önemlidir.

Kural 1: Emir önemlidir. İlk önce spesifik ve daha sonra genel olun.

Kural 2: Bir satırda önceden eşleştirilenler (dahil etme veya hariç tutma) sonraki satırlardaki sonraki eşleşmelerle değiştirilemez. Belgeler bundan bahsediyor; ama çok kafa karıştırıcı İngilizce. Umarım benimki daha iyidir;) Yukarıdaki çizgiler elde eder:

  • Çizgi 1: herhangi __pycache__bir derinlikte olanları hariç tutun.
  • Satır 2: uzantılı herhangi bir dosyayı hariç tutun .pyc.
  • Satır 6: Belirli ve tek Documentsklasörümü ekle.
  • Çizgi 7: gibi klasör tüm diğer ev hariç Pictures, Videos, Downloadsvb Not bu değil durdurma can o Documentszaten Line 6 eşleşen gibi dahil edilmesini! Sipariş önemlidir!

1
include_list.txtDoğrudan komut satırından yineleme çağırarak dosyanızı kullanmak sanırım ? Böyle bir kalıp listesinin Ubuntu'nun varsayılan Déjà Dup GUI'siyle çalışmasını sağlamanın bir yolunu biliyor musunuz? (BTW: İçerme ve hariç tutma kalıpları içeren bir dosyayı adlandırmak bana kafa karıştırıcı gibi geliyor include_list.txt...)
Salim B
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.