我的情况是这样的:
- 我有一个外部硬盘驱动器,其中包含 /home/ 目录中的所有文件夹(/Documents、/Pictures 等等都在外部硬盘驱动器的根目录中)
- 我
rsync -r ./dir-on-computer/ ./dir-on-external-drive/
最近几个月已经使用了。
最近我注意到,当我使用它时,它需要一段时间,而且它似乎不仅复制我已更改的文件,而且还复制我未更改的文件。
这可能只是我缺乏耐心,但我也看到rsync -av
它也用于其他人的备份(我知道整个存档和详细标签,但只是想知道-av
和之间有什么区别-r
)。
所以,总的来说,我想在两件事上得到建议:
- 使用 rsync 的更好方法,确保它是增量的
- (另一个问题)我想重新同步音乐目录中的文件,而不同步音乐目录中的子目录(/Music/other-stuff)
我知道我问这个问题非常懒,而不是在谷歌上搜索信息,但如果您能为我的情况提供任何信息,我将不胜感激。
答案1
快速解决方案,使用:首先进行一次试运行('n')以确保 rsync 是否正常运行
rsync -anPv Documents/Pictures/ /media/HDD/Pictures/
然后同步文件夹
rsync -aPv Documents/Pictures/ /media/HDD/Pictures/
如果您想跳过某些文件夹:
rsync -aPv --exclude Documents/Pictures/UNWANTED Documents/Pictures/ /media/HDD/Pictures/
这是查看更多详细信息的好地方 http://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/?utm_source=feedburner
答案2
为什么要一遍又一遍地复制所有文件。从 rsync 手册页中您可以阅读:
-I,--忽略时间 通常,rsync 将跳过任何已经相同大小且具有相同修改时间戳的文件。此选项关闭这种“快速检查”行为,导致所有文件都被更新。
和A是一组其他几个开关以及t:
-a, --archive 归档模式;等于 -rlptgoD(无 -H、-A、-X) -t, --times 保留修改时间
因此,据我了解,您正在复制文件并为它们提供当前时间戳(备份时间的当前时间戳),并且下次执行备份 rsync 时假设该文件不同。我建议使用-A切换,因为它还设置文件的权限和所有权。
至于第二个问题我会考虑使用--排除=模式转变。