最快的备份大文件

什么是最快的方式来复制一个文件夹包含几百megs大小的几个文件和其他几个megs小文件? (比如/ var / lib / mysql)cp或者tar或者rsync或者…?

一般来说rsync比cp或tar要快,因为rsync只传输那些已经改变的文件,而使用–partial它只会传输一个被改变的文件的部分。

话虽如此,如果你知道你正在做什么,并且可以安排一些东西,使rsync不需要做太多的工作,rsync的工作就会更好。 例如,如果将旋转的日志文件转换为date文件名,而不是.0,.1,.2等,则/ var / log中的日志文件旋转效果会更好。

还有一点需要注意:在你的问题中你提到/ var / lib / mysql。 使用rsync来备份这是一个非常糟糕的主意,使用mysqldump来获得可靠的备份。 如果该备份太大而无法频繁传输,请使用从站的mysql复制和备份。 (但您仍然应该定期对主服务器进行完整备份,但复制也可能会失败)。

取决于几个因素。 对于大量的小文件,通常更好的做tar。 如果是less量的大文件,在大多数情况下,cp是可以的。

如果你有一个文件列表,但只有一小部分改变,rsync更有效率。

这取决于你正在备份的内容。 你不能只使用rsync备份实时数据库,你会得到一个损坏的文件。 对于数据库,比如mysql,你需要设置cron,例如运行“mysqldump”,然后rsync该文件。 另外,请确保在文件名后添加“date”,以便知道何时备份此文件并具有多个备份副本。

啊,魔术字backup

我不能说你提到的方法的相对速度,但我认为rsync的能力只备份已经改变的文件,使其成为最好的方法。

特别是如果大多数文件不需要被复制。

如果你有很多小文件,在它们上面运行tar会大大提高传输速度。

如果文件大部分是文本(这不是mysql二进制文件或数据库的情况),请考虑压缩tar( bzip2等)。 否则,你不会从压缩中得到任何东西,所以只需要把焦油留下。

假设你已经有了一个较旧的文件副本,你只需要刷新副本,那么rsync比cp或tar快得多,因为它只传输已经改变的字节。 几个更改logging的100MB文件将在几秒钟内更新。 我发现它是数据库文件的完美select,但是我用二进制文件取得了较less的成功。

但是,如果复制的目的是为了进行异地备份,rdiff-backup将不会有任何进展。 像rsync一样,rdiff-backup只能传输文件内的变化,但是它也保持增量变化,以便你可以从任何早期的备份date恢复任何文件。

而且,对于SQL数据库,rdiff-backup会检查备份期间所做的更改并自动修复它们,因此恕我直言,应该是安全的。 当然,除非SQL服务器不把数据写入磁盘而将数据保存在内存中,否则将不安全。

SAN快照是最快的方法,但可能不是您要查找的答案。