执行每日/每周/每月备份的最佳方法是什么?

执行每日/每周/每月备份的最佳方法是什么?

我目前每隔几天就会在 Leopard 中运行一个脚本,以确保我已使用以下命令在远程服务器上备份了我的数据:

#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/

这种方法有局限性,即我无法查看几次备份之前删除的文件。自动化此过程的最佳方法是什么?

答案1

你能在 Leopard 中设置一个 cron 作业吗?

示例 rsync 选项 (-avvz) 不会删除“远程”目录中自上次备份以来已从本地目录中删除的文件。它们应该仍位于远程目录中。

但是您的示例令人困惑:您是否将文件从 ~/Documents 复制到 myhost.com 上的 ~/Workspace 还是 ~/Backup/ ?

这可能是 leopard 的一个特性,但看起来你只是从 ~/Documents 复制到 ~/Workspace,在这种情况下,其余行可能会被忽略(并且你不需要调用 ssh)

您还应该考虑以 / 结束源目录规范

我同意 Peter 的观点,如果您有可用的磁盘空间,轮换备份是好的。

答案2

您正在寻找rdiff-备份。非常非常好。

答案3

我发现 rsnapshot 软件包非常好,可以在所有发行版中使用,而且我刚刚将它安装在我的 Mac 上。

它是 rsync 的包装器,负责处理增量备份,包括每小时、每天、每周和每月。

答案4

我每天早上 5:30 运行这个 cron 任务:

#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;

然后在我的网络主机上,我有一个名为 mysql-clean 的脚本,它可以清理我的数据库并删除所有垃圾。mysql-backup 基本上只是通过 bzip2 管道传输的 mysqldump,然后根据日期命名。我还有一个脚本,它获取最新的备份文件,解压缩它,清除本地 mysql 数据库,然后插入备份文件中的所有数据。

相关内容