备份

我们电脑里的一些数据是不能丢失的,最有效的方法是备份。此文讲一些我用过的备份方法。它们是:增量备份网络主机数据,备份网络主机 mysql 数据,用 rsync 服务器备份 Windows 数据,备份 Linux 数据到装在 Windows 里面的虚拟机里,使用 Linux 软件阵列 1 数据冗余方案。

增量备份网络主机数据

针对 Linux 虚拟主机服务,cpanel 控制面板,他们提供安全网络磁盘访问,但是没有 rsync 服务。我们可以挂载网络磁盘,再使用 rsync 增量备份网络数据。

我在 Debian Jessie 下使用 root 帐号操作。先安装 davfs2 "sudo aptitude install davfs2",在 "/etc/fstab" 里建立一个挂载项目,像这样 "https://a.server.com:2123/ /media/webdata davfs noauto,ro 0 0"。在 "/etc/davfs2/secrets" 里为网络磁盘访问控制建立条目,像这样 "/media/webdata username password",然后 "sudo chmod 0600 /etc/davfs2/secrets"。执行 "sudo mount /media/webdata" 挂载网络磁盘。

然后,我们可以使用 rsync 增量备份网络磁盘文件,像这样 "rsync -vzrltopg --delete --progress /media/webdata/html /htmldatabak/"。

备份网络主机 mysql 数据
当使用 cpanel 控制面板时,我们也可以备份 mysql 数据,先在 Cpanel "远程 MySQL"菜单里添加"允许访问主机",如"1.2.3.4"。然后,我们可以从此IP机器上转储 mysql 数据,像这样"mysqldump -ha.server.com -udbuser -pdbpassword dbname > dbname.sql"。

用 rsync 服务器备份 Windows 数据
首先,你需要在 Windows 下安装一个 rsync 服务器,我们这里选择 cwRsync 免费版。然后,如果你需要访问 Windows rsync 服务器时使用权限控制,你需要一些特别的设置。详情参见:在 Windows 上安装 VNC, SSH, Rsync 服务器 http://www.learndiary.com/2013/11/vnc-ssh-rsync-server-on-windows/

备份 Linux 数据到装在 Windows 里面的虚拟机里
Windows 文件系统似乎不能保留 Linux 数据所有的数据属性。我直接在 Windows 里面安装了一个 Linux 虚拟机,然后在虚拟机里用 rsync 命令把另一个 Linux 机器的数据备份到这个虚拟机里面。

关于 Rsync 命令里 "--exclude" 参数的一条提示
比如,命令行 "rsync -avz --exclude 'f*.txt~' /home/user/test/source/ /home/user/test/dest/" 会排除任何匹配 'f*.txt~' 模式的文件或目录。因此,"/home/user/test/source/f1.txt~/2.txt",目录 "f1.txt~" 和里面的所有文件和文件夹(包括递归的子目录)将被排除;"/home/user/test/source/f1/f2.txt~",文件 "f2.txt~" 也会被排除。在 Debian Jessie 测试过。

使用 Linux 软件阵列 1 数据冗余方案
实际上,这不是备份,而是主要用于服务器的数据冗余方案。我使用两块磁盘建立一个 Linux 软件阵列 1 存储重要数据,如果一个磁盘失效,我仍然可以访问降级的阵列 1。

你有其它好的备份方法吗?告诉我们吧。

发表评论

电子邮件地址不会被公开。 必填项已用*标注