使用rsync备份您的主目录,并跳过无用的文件夹


24

您可以轻松地将主文件夹备份到外部硬盘驱动器上

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

我排除了.cache文件夹,因为我认为从该备份重新安装时不再需要它。

我在这里找到了可以在常规备份中排除的所有文件夹的列表:
可以从主目录备份中排除哪些文件和目录?

我创建了此答案的列表,其中包含以下形式的注释:

#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

这是gist的完整列表

如何将此列表添加到我的rsync命令中?


1
除此以外.Trash,还经常出现.Trash-1000(至少在当前的Ubuntu-MATE 14下),所以更好地满足.Trash-*呢?
Frank Nocke

Answers:


40

排除列表只能包含文件名,文件夹名和以开头的行#。不允许在文件夹名称后面添加注释。我创建了一个Git存储库,其中包含所有多余的已知文件和文件夹:

将此忽略列表下载到/ var / tmp / ignorelist

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

然后使用以下命令启动rsync

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

注意:
在ignorelist中,文件夹的开头部分是目录,可能是不值得备份的目录。


2
您可以结合使用这两个命令,因为rsync可以从stdin以下命令中读取:wget https://... -O - | rsync -a --progress --exclude-from=- ...
muru

8
好点,但我认为建议在启动rsync之前先查看ignorelist
rubo77

意外地node_modules不在列表中
jchook

您不想保留node_modules在某些配置目录中吗?想象一下,您想将主目录移动到新计算机上,然后需要保留这些目录。
rubo77

4

来自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.

有这样一个列表,我编辑了我的问题
rubo77

@ rubo77我支持我的声明,即您没有可以排除的所有文件夹的列表。这是一个建议,我什至甚至连Lekenstyn都怀疑这是完整的清单。
muru

列表不一定是完整的,我只是想更快地创建备份,所以跳过明显无用的文件夹
rubo77 2014年

@ rubo77我认为您必须将注释移到不同的行。
大师

thx,我更新了gist文件,因此注释位于单行上
rubo77

0

如果仅要备份其中的目录和文件,可以尝试此操作。排除所有隐藏目录。

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


您能更具体地说“缺少报价”吗?
arth 2015年

哦,对不起-我太紧了,打错了字眼:“ quotest”而不是“ quotes”。
Volker Siegel

壳可以展开*(也许不在那个地方?)。路径应加引号-用户名不能包含空格,但/media/可以是空格/Old Media/...
Volker Siegel

很抱歉,我没有得到。“。*”不得包含任何“。” 模式是位于备份目录的主目录“ / home / $ USER /”中的隐藏目录:外部硬盘驱动器或笔驱动器“ / media / $ USER / folder”。这样,仅备份实际的目录和文件。如果您还有其他疑问,请详细说明。
arth 2015年

4
排除所有以点开头的目录并不是很有意义,例如.thunderbird目录是最重要的目录之一
rubo77 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.