Cronjob 在外部 USB 硬盘上创建 Ubuntu Server 12.04 的磁盘映像

Cronjob 在外部 USB 硬盘上创建 Ubuntu Server 12.04 的磁盘映像

我有一个 1TB 的外部硬盘,想定期(可能每周一次)拍摄整个服务器的快照。对于 cronjob 部分,我计划指向以下 bash 脚本:

$ sudo crontab -e

但不知道我可以使用什么工具在服务器运行时创建磁盘映像。创建映像时必须关闭它吗?我查看了 Clonezilla,但看起来我必须先设置一个 DRBL 服务器,这似乎是我不想要的。

我也不知道运行备份需要多长时间,或者是否有办法只进行增量更改。我计划在那里存储约 500GB 的数据。

我是否需要以任何特定方式格式化外部硬盘?有人知道好的教程/入门点吗?

提前致谢。

答案1

您可以使用 rsync 复制整个系统。它本身并不是“映像”,但它将包含系统上所有文件的副本。例如,您可以执行以下操作:

rsync -aHAXxv / /mnt/备份/

这会将根文件系统中的所有内容复制到 /mnt/backup。(请注意,由于 -x,它仅复制一个文件系统,因此如果您有多个文件系统,则需要执行多个命令,或者省略 -x 并使用 --exclude 排除备份路径。)

答案2

尝试 fsarchiverhttp://www.fsarchiver.org/QuickStart 它允许您从分区创建实时备份,以及多线程映像压缩。不幸的是,增量备份有点困难。也许可以在分区的 dd 映像上使用 rsync?考虑制作压缩分区映像,也许可以对某些文件夹进行 rsync/bacula 增量备份。

答案3

最好考虑一下你要备份什么——制作磁盘映像需要某种形式的技巧,以免因为正在运行的系统而损坏它——我能想到两种方法:

  • 某种预安装的黑魔法,在启动时生成一个映像(听起来很难),然后在重新启动时执行 cron
  • 在某种虚拟机管理程序下运行服务器并使用主机控制的快照

其他选项是备份您创建的数据和配置,并让“操作系统位”通过新安装重新创建 - 也许您甚至可以编写脚本以实现超快速 DR。它还将为您节省大量备份空间 - 这意味着您可以更频繁地备份并保留更长时间。

答案4

正如@yesterday提到的,你可以像这样使用 rsync:

rsync -aHAXxv / /mnt/backup/

这将创建一个备份 auf /,但不会创建其他已安装分区的备份,/var 因此您应该对需要备份的每个分区都执行此操作。

但为了确保备份一致,您应该使用 LVM 快照(如果可用)。例如:

# create snapshots
lvcreate -s vg0/root -n root_snapshot -L2G
lvcreate -s vg0/var  -n var_snapshot  -L2G
# mount snapshots to make a copy
mount /dev/vg0/root_snapshot /mnt/snapshot
mount /dev/vg0/var_snapshot  /mnt/snapshot/var
# backup all files (no need for -x here)
rsync -aHAXv /mnt/snapshot/  /mnt/backup/
# unmount the snapshots
umount /mnt/snapshot/var /mnt/snapshot
# remove the snapshots
lvremove vg0/root_snapshot
lvremove vg0/var_snapshot

相关内容