如何创建本地备份?

如何创建本地备份?

我有一个 Linux(Ubuntu 12.04)网络服务器,我想创建一个 cronjob 来在本地(在同一台机器上)生成差异备份。

这可能吗?我说的差异是指第一次复制所有内容,但接下来的几次只复制新文件。但我还想拥有多个时间点,我的意思是至少有 3 或 4 个备份,我可以从中恢复所有内容。

我已经检查过这个页面,但是有太多不同的工具,我想每个工具都有自己的陷阱:https://help.ubuntu.com/community/BackupYourSystem#Types_of_Backup

例如,有人告诉我存储 .tar.gz 的大小是有限制的。

如果您有任何简单的建议,即使不是有区别的,我们也欢迎。

答案1

假设有一个备份磁盘/media/mydisk并且我想要备份/home/user,这个小脚本将让你保留 10 个历史备份,但只保留多次不同的文件。

这需要备份磁盘使用 POSIX 文件系统格式化,如 Ext4、XFS 或其他,但NTFS,也不胖的!

#!/bin/bash
backRepo=/media/mydisk
backSrce=/home/user
backDest=home
backCopy=copy
backCount=9

[ -d "$backRepo/$backDest" ] || mkdir "$backRepo/$backDest"

cd $backSrce || exit 1
rsync -ax --delete --exclude '*~' --exclude '.DStore' . "$backRepo/$backDest/."

cd $backRepo
[ -d "$backCopy.$backCount" ] && rm -fR "$backCopy.$backCount"
for ((i=$backCount;i--;));do
    [ -d "$backCopy.$i" ] && mv "$backCopy.$i" "$backCopy.$((i+1))"
  done
((i++))

cp -al $backDest $backCopy.$i

这 ( cp -al) 会创建文件的硬链接,而不是复制它。因此不会占用更多空间。

Rsync 将重新创造(写时复制)每个修改过的文件,因此轮换备份保留旧版本。

答案2

同步是一款出色的文件复制工具,它可以只复制文件中的更改位,并且可以在覆盖之前备份目标文件。

您可以轻松编辑您的文件,crontab使其定期运行,rsync作为主备份。然后,您可以复制已更改文件的备份,这样您就会拥有更多时间点。或者,您可以在运行之前复制备份数据,rsync以便获得每个时间点的完整映像。

除非您稍后要将文件复制到其他地方,否则我认为没有必要使用tar

相关内容