备份Linuxnetworking服务器的最佳方法是什么?

我正在运行一个典型的LAMP服务器。 我需要通过networking在本机上备份数据,而不中断服务。 备份系统了解SSH,FTP,SMB,NFS和iSCSI。 什么是最好的方法来完成这个?

您可以使用'scp'(使用SSH)来备份数据,但更好的select是设置“rsync”: 复制Web服务器

rsync是相当快,因为​​它只反映了差异,而不是做一个完整的副本。

Rsync是有史以来最好的事情。 然而,作为一个通用的备份工具,它有一些失败(本身并不是失败,它是一个很好的文件复制工具)。 你有两个问题:

  1. 将随着时间的推移备份集,所以复制的第一个文件将比复制的最后一个文件旧。 是的,很明显,但如果两个文件需要同步,那么你有一个不反映服务器状态的备份。 这可能不是最常见的问题,但如果是这样的话,恢复时就会出现问题。

  2. 有些数据不能很好地复制,例如MySQL数据库文件。 如果文件是打开的,并且其中的一些内容是内存中的,那么服务器的真实状态将不会被备份。

该解决scheme相当简单:确保所有正在运行的服务在备份之前立即将其数据刷新到磁盘,然后确保您拍摄磁盘状态的快照。

MySQL有转储数据库的工具 – mysqldump。 我用这个来创build一个备份的sql文件,这个备份后我忽略了mysql文件本身,当我来恢复时,我知道我可以恢复转储。 LVM具有获取磁盘快照的function 。 这些将创build一个备用分区,从快照采取的所有磁盘写入透明地进入快照分区,这意味着您的原始驱动器保持不变。 完成备份后,删除快照,并将所有更改“提交”到主磁盘。

或者,您可以使用虚拟化系统来保存您的Web服务器,然后备份将挂起VM镜像,并将其文件(使用rsync!)复制到备份目标。 恢复和复制备份文件一样简单,并且可以暂停备份(当发生这种情况时,您将有很短的停机时间,尽pipe有些VM系统可以在暂停和使用快照文件系统的情况下将停机时间降到最低)。

最好的select,如果你有钱,就是使用像r1soft的连续数据保护 ,不断备份变化。

Rsync很棒,但是rdiff备份更好。 它不仅保留了所有文件的镜像,还允许您从以前的备份中恢复旧版本。 它只保存改变的文件的部分(“反向差异”),所以你不保存一大堆额外的数据来获得恢复function。

它使用与rsync相同的algorithm,但function相当强大和有用。

另外,重复是一个非常像rdiff-backup一样的系统,但它在客户端执行所有的操作(即不需要在服务器上安装)。 它还可以在发送备份之前encryption备份,并且可以将其configuration为使用Amazon S3存储。

Rsync是简单设置的方法。

对于更大的设置,考虑BackupPC 🙂

我会去与DRBD同步networking内容和networkingconfiguration到另一台服务器或共享。

我目前通过ssh使用ssh密钥和rsync来备份多个unix系统。 它工作的很好,速度很快,因为rsync只能同步的差异。 我将一堆rsync备份转储到一个linux盒子,然后备份exec可以运行一个作业,稍后将数据发送到磁带。 bash脚本很简单,可以编写

许多评论者都指出,rsync是一种快速而方便的备份方式,但重要的是要认识到数据丢失的最常见原因不是硬件/介质故障,而是人为错误(“哎呀,我刚刚删除了错误一堆文件“)。

进行增量备份和时间点恢复至关重要。 Dirvish – http://www.dirvish.com – 是build立在rsync基础之上的优秀工具,允许使用rsync进行高效的快照恢复和备份。

另一个重要的考虑因素是安全性 – 执行备份通常意味着给您的系统提供远程进程根级可见性。 使用rsync + ssh,限制潜在的破坏的一个好办法是使用SSH的命令限制。 您可以限制公钥可以执行的操作,例如:

command="sudo /usr/bin/rsync -Rlptd / -",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-rsa AAAAB3N....

在authorized_keys文件中 – 确保(和正确的sudo限制一起)远程密钥在被允许执行的地方非常有限。

如果你使用rsync来滚动自己的路线,那么你也可以尝试Unison。 如果你喜欢备份系统,那么我会尝试Bacula或Amanda。

我很喜欢使用rdiff备份。 这使用rsync引擎来存储文件的修订(diff),允许您在某个特定的时间轻松地回滚文件或树。

rsync是最简单的解决scheme。 我个人使用DAR进行差异备份,然后使用rsync将它们传输到另一台服务器。 不要忘记,你不能通过简单地备份/ var / lib / mysql来备份你的MySQL数据库; 可能会处于腐败状态。 改用mysqldump。

你也可以看看rsnapshot(www.rsnapshot.org)。 它可能是作为您正在使用的Linux发行版的安装包提供的。

Rsnapshot使用硬链接来存储备份快照,因此一段时间内的几个快照大概只消耗大约最旧快照的总大小和已更改文件的大小。 由于它使用rsync进行文件传输,因此只有自上次快照以来才传输已更改的文件。

您可以定义快照的时间间隔以及保存快照的时间。 一个典型的设置可能是保持6个月的每月快照,1个月的每周快照和1个星期的每日快照。

很好的设置rsnapshot需要一些关于ssh和/或rsync的知识(取决于你的设置)。 在“安全的”内部环境中,您可以使用普通的rsync作为rsnapshot的传输媒介。

是! Rsync是非常快速的,它非常全面的文件复制工具。

  • 项目清单

1.Rsync支持复制,链接,设备,所有者,组和权限。

2.排除和排除类似于GNU tar的选项

3.不需要超级用户权限

本地:rsync [OPTION …] SRC … [DEST]

  Access via remote shell: Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST:DEST Access via rsync daemon: Pull: rsync [OPTION...] [USER@]HOST::SRC... [DEST] rsync [OPTION...] rsync://[USER@]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [USER@]HOST::DEST rsync [OPTION...] SRC... rsync://[USER@]HOST[:PORT]/DEST Usages with just one SRC arg and no DEST arg will list the source files instead of copying.