Ana dizininizi rsync ile yedekleyin ve gereksiz klasörleri atlayın


24

Ev klasörünüzü harici bir sabit sürücüde kolayca yedekleyebilirsiniz.

rsync -a --exclude=.cache --progress /home/$USER /media/linuxbackup/home/$USER

.Cache klasörünü hariç tuttum çünkü bu yedeklemeden yeniden kurmam gerektiğinde asla ihtiyacım olmayacağını düşünüyorum.

Burada, normal bir yedeklemede dışlayabileceğim tüm klasörlerin listesini burada buldum:
Hangi dosya ve dizinler, ana dizinin yedeklemesinden çıkarılabilir?

Bu formdaki bazı kodları içeren bu cevabın bir listesini hazırladım:

#These directories may be excluded:

.gvfs                           # contains mounted file systems?
.local/share/gvfs-metadata
.Private                        # contains the actual encrypted home directory
.dbus                           # session-specific
.cache
.Trash                          # do I need to say more?
.local/share/Trash
.cddb                           # cached info about audio CDs
.aptitude                       # cached packages lists

#Flash-specific:

.adobe                          # Cache for flash, maybe others?
.macromedia   # except for Flash persistence, there is no reason to keep this

#Files:

.xsession-errors            # contains errors from the current graphical session
.recently-used              # recently used files
.recently-used.xbel
.thumbnails

İşte listedeki tam liste

Bu listeyi rsync komutuma nasıl ekleyebilirim?


1
Bunun yanında .Trash, sık sık da var .Trash-1000(en azından şu anki Ubuntu-MATE 14 uyarınca), bu yüzden daha iyi razı olmak .Trash-*?
Frank Nocke

Yanıtlar:


40

Hariç tutulanlar listesi sadece dosya isimlerini, alt isimleri ve ile başlayan satırları içerebilir #. Kat adının arkasındaki yoruma izin verilmiyor. Gereksiz tüm bilinen dosya ve klasörlerle bir Git havuzu oluşturdum:

Bu ignorelist'i / var / tmp / ignorelist'e indirin

wget https://raw.githubusercontent.com/rubo77/rsync-homedir-excludes/master/rsync-homedir-excludes.txt -O /var/tmp/ignorelist

Sonra rsync ile başlayın

rsync -aP --exclude-from=/var/tmp/ignorelist /home/$USER/ /media/$USER/linuxbackup/home/

Not:
Ignorelist'te başlangıçta klasör içeren, dizinleri olan ve muhtemelen bir yedeğe değmeyecek bir bölüm vardır.


2
İki komutu birleştirebilirsiniz, çünkü rsyncaşağıdakileri okuyabilir stdin:wget https://... -O - | rsync -a --progress --exclude-from=- ...
muru

8
iyi nokta, ama rsync'e başlamadan önce görmezden gelene ilk önce bakmanın tavsiye edilebilir olduğunu düşünüyorum
rubo77

şaşırtıcı bir şekilde node_moduleslistede yok
jokok

node_modulesconfig dizinlerinizin bazılarında saklamak istemiyor musunuz? Düşünsene, ana dizininizi yeni bir bilgisayara taşımak istiyorsunuz, sonra bunları saklamanız gerekir.
rubo77

4

Kimden man rsync:

 --exclude-from=FILE     read exclude patterns from FILE
          This option is related to the --exclude option, but it specifies
          a FILE that contains exclude patterns  (one  per  line).   Blank
          lines  in  the  file  and  lines  starting  with  ’;’ or ’#’ are
          ignored.  If FILE is -, the list  will  be  read  from  standard
          input.

Böyle bir liste var,
sorumu düzelttim

@ rubo77 Ben hiçbir liste var ki bildirgemden stand by tüm klasörler olabilir dahil değildir. Bu bir öneri ve Lekenstyn'in bile tam bir liste olduğunu söyleyeceğinden şüpheliyim.
muru

Olmak zorunda değil 'liste tam I sadece bariz yararsız klasörleri böylece daha hızlı benim yedek oluşturmak atlamak istiyorum
rubo77

@ rubo77 Yorumları farklı satırlara kaydırmanız gerektiğini düşünüyorum.
muru

thx,
gist

0

Dizinler ve dosyalar yalnızca istediğiniz yedeklemeyi içeriyorsa, bunu deneyebilirsiniz. Tüm gizli dizinleri içermez.

rsync -aP --exclude=.* /home/$USER/ /media/$USER/folder


Daha "spesifik eksik" ifadesi olabilir misiniz?
arth

Oh, üzgünüm - çok özlüyordum ve bir yazım hatası yaptım: "tırnak" yerine "tırnak".
Volker Siegel

Kabuk genişleyebilir *(belki o yerde değil?). Yollar alıntılanmalıdır - kullanıcı adı boşluk içeremez, ancak /media/olabilir /Old Media/ya da öyle olabilir ...
Volker Siegel

Özür dilerim, alamadım. '. *' Hiçbirini içermez. ' '/ home / $ USER /' ana dizinindeki yedek dizinleri gizleyen dizinler: harici hdd veya pen drive '/ media / $ USER / folder'. Bunu yaparak, yalnızca asıl dizin ve dosyalar yedeklenir. Başka bir şeye işaret ediyorsanız, lütfen ayrıntılandırın.
arth

4
Bir nokta ile başlayan tüm dizinleri dışlamak gerçekten anlamlı değildir, örneğin .thunderbird dizini en önemli dizinlerden biridir
rubo77
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.