Bash 中的选择性备份脚本

Bash 中的选择性备份脚本

我一直在使用这个简单的命令(这就是我所能做的:)来从 NAS 服务器中的用户数据中备份整个树一年了。

cp -r /STORAGE /BACKUP-STORAGE/YYYY-MM-DD

不幸的是,使用一年后,我的用户开始用大量照片和剪贴画(jpg、gif、bmp)填充空间,这开始使我的备份过程变得慢得多。空间也是一个大问题。现在我不再有足够的空间进行为期一周的每日备份。

我想从备份所有内容改为仅备份非图像数据。如何从备份中排除 jpg、gif 和 bmp?使用 DOS XCOPY 命令很容易,但我真的不知道如何在 bash 中执行此操作。

谢谢

答案1

看一眼rdiff-备份. 它不会保留未改变文件的副本,只会保留“差异”。

如果您想继续复制 - 使用 rsync 而不是 cp 并查看排除指令的语法,例如如上所述这里

请记住验证您的备份是否有效[特别是使用 rdiff 或任何其他“高级”备份 - 验证存储库,不时尝试恢复程序]。

答案2

在 Linux 中,您始终可以选择使用好用的 ole tar,使用--exclude--exclude-from选项

答案3

如果您想坚持每天进行完整备份的策略,您可以使用 rsync 和一些 --exclude 标志来仅复制非图像数据。

如果您想要进一步减少备份的大小,可以压缩备份副本;最快捷、最简单的方法是使用 tar 来制作存档(这样输出将是一个文件),并使用 -z 或 -j。

您可以通过使用更传统的备份模型(每周完整备份和每日增量备份,使用 tar 或 find+tar)进一步减小尺寸。

答案4

我支持 tar 或 rsync。find 也可以工作,但可能会达到一些限制,具体取决于此树中的文件数量。rsnapshot 也很好。

相关内容