我们正在迁移Web服务器,如果有一种自动的方式来检查一些基本的网站结构,看看新服务器上的渲染页面是否与旧服务器相同,那就太好了。 我只是想知道有没有人知道有什么可以协助完成这项任务?
awk脚本:检查一个文件中的所有单词(字段)是否包含在另一个文件中
运行差异,让它停下来的差异
工具差异窗口二进制文件?
如何使用diff比较两个目录而忽略不存在的文件?
得到这两个网站的格式化输出 (这里我们使用w3m ,但山猫也可以工作):
w3m -dump http://google.com 2>/dev/null > /tmp/1.html w3m -dump http://google.de 2>/dev/null > /tmp/2.html
然后使用wdiff ,它可以给你两个文本是多么相似的百分比。
wdiff -nis /tmp/1.html /tmp/2.html
使用colordiff可以更容易地看出差异。
wdiff -nis /tmp/1.html /tmp/2.html | colordiff
输出摘录:
Web Images Vidéos Maps [-Actualités-] Livres {+Traduction+} Gmail plus » [-iGoogle |-] Paramètres | Connexion Google [hp1] [hp2] [hp3] [-Français-] {+Deutschland+} [ ] Recherche avancéeOutils [Recherche Google][J'ai de la chance] linguistiques /tmp/1.html: 43 words 39 90% common 3 6% deleted 1 2% changed /tmp/2.html: 49 words 39 79% common 9 18% inserted 1 2% changed
(他实际上把google.com变成法语……好笑)
常见的%值是两个文本是多么相似。 另外,你可以很容易地看到字的差异(而不是线可能是一个混乱)。
问题是如何检查“呈现”页面。 如果页面没有任何动态内容,最简单的方法是使用md5或sha1命令为文件生成散列,然后检查新服务器。
如果网页具有动态内容,您将不得不使用wget等工具下载网站
wget –mirror http:// thewebsite / thepages
然后按照华纳的建议使用diff,或者再次执行hash操作。 我认为差异可能是最好的方法,因为即使是1个字符的变化也会混淆哈希。
我已经创建了下面的PHP代码来完成Weboide在这里提出的建议。 感谢Weboide!
粘贴在这里:
http://pastebin.com/0V7sVNEq
将文件复制到/tmp/directory1和/tmp/directory2的相同服务器,然后运行以下命令:
diff -r /tmp/directory1 /tmp/directory2
对于所有意图和目的,您可以使用您的首选命名约定将它们放在您的首选位置。
编辑1
你可能会使用lynx -dump或wget并在结果上运行diff。
没有呈现每个页面,采取屏幕截图,并比较这些截图,我不认为有可能比较呈现的页面。
但是,在用wget递归下载之后比较下载的网站当然是可能的。
wget [option]... [URL]... -m --mirror Turn on options suitable for mirroring. This option turns on recursion and time-stamping,sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.
下一步就是做华纳推荐的递归比较。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。