Articles of 差异

你能否更新一个Hyper-V父差异磁盘推送更新给所有的孩子?

我有一个Windows 2008 Datacenter服务器,我打算创build几十个虚拟机,使用相同的基本Windows 2003操作系统,并提供一些预安装组件和更新。 我在想, 1)创build父VHD和使用Hyper-V差异磁盘创build多个共享同一父VHD的VM的优点和缺点是什么? 我预计这将使创build基于该映像的新虚拟机非常容易。 2)如果创build差异磁盘,是否可以修改父VHD,并让所有子节点继续正常运行,包括新的更改。 例如,我可以在父VHD上安装Windows更新,并且所有子虚拟机都会自动应用此更新(因为父磁盘已更改)?

“单方面”的差异

我有两个大的目录树 – 想想一个机构的客户工作多年。 一个老了,过时了; 另一个是更大,目前使用。 我想删除前者,但是我想确定后者是真正的超集(我怀疑前者是旧的存档或后者的早期版本,被粗心地复制并且从不删除)。 在其通常的configuration中使用diff会产生太多的输出,因为它会告诉我两个目录树之间的所有差异。 我想知道的是,我可以运行什么命令来查找较小的较旧的树上的哪些文件(如果有的话),这些文件在更大的较新的树上也不可用。 顺便说一句,我在Windows上运行cygwin – 不知道这是否重要。 如果有人会build议使用Windows实用程序,也没关系。

rsync -c -i将相同的文件标记为不同的文件

我的目标是:给出本地服务器上的文件列表,显示远程服务器上具有相同绝对path的文件的任何差异; 例如比较本地/etc/init.d/apache到远程服务器上的同一个文件。 对我来说“差异”意味着不同的校验和。 我不在乎文件修改时间。 我也不想同步文件(还); 只显示差异。 我有本地和远程服务器上的rsync 3.0.6,应该能够做我想要的。 然而,声称本地和远程文件,即使是相同的校验和,仍然是不同的。 这是命令行: $ rsync –dry-run -avi –checksum –files-from = / home / me / test.txt –rsync-path =“cd /&rsync”/ me @ remote:/ 哪里: “我”=我的用户名; “远程”=远程服务器主机名 当前工作目录是'/' test.txt包含一行读取“/etc/init.d/apache” 操作系统:Linux 2.6.9 在两台服务器上的/etc/init.d/apache上运行cksum会得到相同的结果。 这些文件是一样的。 但是, rsync输出是: me@remote's password: building file list … done .d..t…… etc/ cd+++++++++ etc/init.d/ <f+++++++++ etc/init.d/apache sent 93 […]

比较二进制文件

我有一个大文件的文件夹。 这是一个每天都在变化的文件。 使用tar进行增量备份不是一个好主意,因为每天都会复制一个大文件(每个被更改的文件都被保存),进行增量备份。 有没有一个应用程序,使差异的两个二进制文件(差异备份)? 谢谢。

差异和补丁大二进制文件

作为我工作的一部分,我经常需要上传大文件(例如512 MB到1 GB的ISO)。 在某些情况下,从ISO到ISO的变化非常小(例如,1 GB ISO中的10 MB文件)。 不幸的是,我不能只发送更改的文件 – 我需要发送整个ISO。 更快的连接不是一个有效的解决scheme。 有什么工具(最好是Linux,最好是免费的)可以制作和应用这样的大的二进制文件的差异?

错误的差异:单字符文件没有换行输出错误

考虑一下: echo -na > /tmp/a echo -nb > /tmp/b diff -B /tmp/a /tmp/b 显然,这两个文件是不同的,但差异似乎认为这些文件是相同的。 我已经设法在Ubuntu 14.04上使用diffutils 3.3,在使用diffutils 2.8.1的CloudLinux 5.10以及使用diffutils 2.8.1的Ubuntu 10.04上重现这个问题。 如果我不使用-B选项,问题就会消失。 如果文件以换行符结束,问题就会消失。 如果文件包含多个字符,问题就会消失。 我试过在网上search这种行为的解释,但一直没有成功。 有人可以解释发生了什么事吗? 而且,我可以使用什么最简单的解决方法–B行为对我来说很重要。

是否有差异/合并实用程序比较二进制文件和基于二进制数据的差异在任一方向逐位同步数据?

我有一个棘手的困境。 我有两个不同的目标驱动器上的一些文件,从相同的源驱动器复制。 源驱动器已经失败了,所以我用dd复制数据到一个目的地(选项conv=noerror,sync填充错误的块与零字节),我用ddrescue在同一个源驱动器复制数据第二个分区,我听说ddrescue也填充零字节的错误。 现在,我有两个目标驱动器接近重复的数据,除了这两个目标驱动器上的一些数据是完全不同的。 我只能假设这些差异是由这些零字节引起的,这些零字节似乎位于这两个目标驱动器上的数据之间的不同位置。 我只能假定这些差异是由于在复制过程中遇到错误而被填满的文件部分引起的。 但是,两个独立的目标驱动器上的零填充点是不同的。 大部分数据由二进制文件组成。 因此,源文件中的某些文件完全不受影响,而目的文件中的文件却不完整,而其他文件完全保留在目标文件中,而源文件中的对应文件则不完整。 很多这些文件也是二进制文件。 理想情况下,我想同步两个驱动器如下: 比较每个文件,逐位。 如果左侧文件的位是1,右侧文件的位是0,则将1复制到右侧。 如果左边的文件位是0,右边的文件位是1,如果双向同步不是一个选项,那么将这个1复制到左边,或者至less保留1。 这个function对我来说是有意义的,但是有没有一个可以自动处理的实用工具? 我想为此使用rsync,但似乎rsync只检查基于大小和时间戳或校验和,而不是一点一点的文件和一个简单的校验和不会告诉你哪里有0时,应该是1秒。 我也研究了rdiff和bsdiff,它们都支持二进制文件,但是它们似乎只是输出一个diff文件,而不是做任何实际的复制/同步。 那么是否存在一个我正在寻找的实用工具,正如我在上面描述的理想同步行为中所描述的那样? 操作系统不一定很重要,因为我可以访问OSX,Windows和Ubuntu。

如何比较两个目录比较缺less的文件,当目录不具有相同的结构?

我已经从我们正在使用的一个组织发送了一个新的和更新的文件的硬盘驱动器,但是我们已经将大部分文件放在我们的服务器上,并且想要更新我们的本地版本以匹配他们的文件。 通常情况下,这将是一个像rsync这样的工作,但我们的问题是,他们提供的目录结构组织非常差,我们不得不重新安排他们的文件过去,以最好地与我们的系统。 所以,我的问题是: 当目录结构不同时,我怎样才能找出它们提供的集合中的哪些文件是新的还是不同于我们拥有的版本呢? 一旦这个问题得到解答,我们可以更新已更改的文件,并找出将新文件放在我们的系统中的位置,可能有点手动。

如何在VirtualBox中创build另一个差异磁盘的链式差异磁盘?

如何从已经是差异图像的磁盘创build差异磁盘(链接的)? 我想拥有: W2008(基本不可变) – > W2008 + SQL2008 (差异,与SQL安装)—这我可以做。 – > W2008 + SQL2008 + SharePoint (与SQL2008顶部安装的Sharepoint链接差异) 有一些关于它的信息: http : //www.virtualbox.org/manual/ch05.html#diffimages 差分图像可以链接在一起。 如果为已经具有差异图像的虚拟磁盘创build了另一个差异图像,则它将成为原始父级的“孙子”。 第一个差分图像也变成只读,写入操作只能进入第二级差分图像。 当从虚拟磁盘读取时,VirtualBox需要先查看第二个差异图像,然后进入第一个,如果没有find扇区,然后进入原始图像。 我不明白

只显示文件中的新内容

我想找出在两个任务之间添加到日志文件的内容。 现在我这样做的方式是: 最初test.log的内容 aaa bbb 保存日志的内容 $ cp test.log test.log.before 做某事 test.log内容做完之后 aaa bbb ccc 保存日志的内容 $ cp test.log test.log.after 显示差异 $ diff test.log.before test.log.after 2a3 > ccc 我不喜欢这种方法是,我从diff ( 2a3和> )得到一些噪音,而我只是想ccc 。 问:有没有一种方法可以获得两个日志文件(即test.log.after, ccc新增function)之间的区别? 我看了差异的手册页,但我没有看到任何明显的。