恢复没有备份的丢失的网站?


262

不幸的是,我们的托管服务提供商经历了100%的数据丢失,因此我丢失了两个托管博客网站的所有内容:

(是的,是的,我绝对应该完成完整的异地备份。不幸的是,我的所有备份都在服务器本身上。因此,请保存演讲;您100%绝对正确,但是此刻对我没有帮助。请继续关注这里的问题!)

我正在开始从Web搜寻器缓存中恢复网站的缓慢而痛苦的过程。

有一些自动工具可以从互联网蜘蛛网(Yahoo,Bing,Google等)的缓存中恢复网站,例如Warrick,但是使用此工具却产生了一些不好的结果:

  • 我的IP地址由于使用它而被Google快速禁止
  • 我收到很多500和503错误,并且“正在等待5分钟……”
  • 最终,我可以更快地手动恢复文本内容

通过使用所有博客文章的列表,单击进入Google缓存并将每个文件另存为HTML,我的运气要好得多。尽管博客文章很多,但博客文章却不多,我认为我应该因缺乏更好的备份策略而自欺欺人。无论如何,重要的是,我很幸运以这种方式获取博客文章文本,而且我绝对能够从Internet缓存中获取网页文本。根据到目前为止的经验,我有信心可以恢复所有丢失的博客文章文本和评论

但是,每篇博客文章附带的图片都证明……更加困难。

从Internet缓存恢复网站页面的任何一般技巧,尤其是从网站页面恢复存档图像的地方?

(再次,请不要提供备用讲座。您完全,完全,完全正确!但是正确不能解决我眼前的问题……除非您有时间机器……)


96
当像杰夫·阿特伍德这样的人本可以一口气丢掉两个完整的网站时……恩。我将回顾我自己的备份程序,其中一个:P

240
@Phoshi:Jeff在备份方面有一些很好的文章,关于编码恐怖。您应该给他们快速阅读。

34
joshhunt赢得一(1)个互联网。此优惠不能与其他优惠合并,交换或替代。没有降雨。
亚当·戴维斯

28
某些人将竭尽全力,才能在SU上赢得代表...

26
请不要将您所做的称为“备份”-如果这些文件位于同一服务器上,则它们绝不是“备份”。

Answers:


220

这是我在黑暗中的疯狂选择:将您的Web服务器配置为针对每个图像请求返回304,然后通过在某处发布URL列表并在播客上要求所有读者加载每个URL并收获任何图像来众包恢复资源从其本地缓存加载。(这仅在您还原HTML页面本身并带有<img ...>标记之后才能起作用,您的问题似乎暗示您将能够这样做。)

基本上,这是一种花哨的说法,“从读者的Web浏览器缓存中获取它”。您有许多读者和Podcast听众,因此您可以有效地动员大量可能最近浏览过您的网站的人。但是,从各种Web浏览器的缓存中手动查找和提取图像非常困难,并且如果足够容易的话,那么许多人就会尝试并成功,那么整个方法将发挥最佳作用。因此采用304方式。读者所需要做的就是单击一系列链接,并拖出确实加载到网络浏览器中的所有图像(或右键单击并另存为等),然后通过电子邮件将其发送给您或将其上传到您设置的中心位置或其他任何位置。这种方法的主要缺点是Web浏览器的缓存不会回到过去。但是,仅需要一位过去几天刚从2006年开始发帖的读者,就可以挽救一个非常古老的形象。有了足够多的观众,一切皆有可能。


52
+1是最具创意的方法。由于CH有许多读者,因此实际上可以工作。


3
我认为您可以抓取图像标签的静态文件,然后将所有图像复制到一个巨大的图像页面中,而不用让每个人都单击每个链接。diovo.com的实现看起来非常令人印象深刻,希望对您有用。

2
哇,真是个邪恶的巫师,我<3
艾哈迈德·阿尔菲

4
实际上,您应该能够使用canvasAJAX 检索图像并将其发送回家。
托马什Zato

65

我们中有些人跟随您使用RSS阅读器,并且不会清除缓存。我的博客文章似乎可以追溯到2006年。据我所见,没有图像,但可能比您现在做的要好。


肯定+1。Google Reader没有,但是我敢打赌基于桌面的。

2
您还可以要求人们检查他们的浏览器缓存。那些以复古风格观看《编码恐怖》的人可能会缓存一些图像。

我在GReader上看到的博客帖子可以追溯到2005年,但是不幸的是,它们没有图像,它们也不允许我仅将这些图像导出为一系列页面...但是我可以通过电子邮件将它们发送给Jeff。 ..
Glen Solsberry 2009年

是的,有一个隐含的含义:“如果您要的话,我会寄给您我所拥有的。” 在我的回答中也是如此。

3
太多的RSS阅读器都认为图像永远不会消失。我知道我的工作是:(

62

(1)从HTML备份中提取所有丢失图像的文件名列表。您将得到类似的东西:

  • stay-puft-marshmallow-man.jpg
  • internet-properties-dialog.png
  • yahoo-homepage-small.png
  • password-show-animated.gif
  • tivo2.jpg
  • 迈克尔·阿布拉什图形程序

(2)在Google图片搜索中搜索这些文件名。看来其中许多已经被其他博客“镜像”了,因为它们具有相同的文件名,因此已经成熟。

(3)如果证明可以成功拍摄10幅以上的图像,则可以自动进行。


如果他实际上得到任何这样的图像,那将非常具有讽刺意味。
Hashim

51

通过转到Google图片搜索并输入文字,site:codinghorror.com您至少可以找到所有图片的缩略图版本。不,它不一定有帮助,但是它为您检索那数千张图像提供了一个起点。

Codinghorror图片

某些情况下,Google似乎会存储较大的缩略图:

Google与Bing

Google在左侧,Bing在右侧。


2
是的,最坏的情况是,我们必须放大Google的缩略图。我听说Bing会存储较大的缩略图吗?
杰夫·阿特伍德

我不知道; 我不是个笨蛋。我什至不知道他们是否像Google一样进行图片搜索。我会找出并更新所说的帖子。
George Stocker

18
不知道你是不是 但是Imageshack似乎有很多博客图像。 profile.imageshack.us/user/codinghorror
Nick Berardi

他们似乎有456张完整尺寸的图像。这可能是恢复一切的最佳选择。也许他们甚至可以为您提供转储。
尼克·贝拉迪

28
首先使用Google缩略图,然后使用tineye.com查看是否有人托管副本。
2009


37

杰夫,我在这里为你写了一些东西

简而言之,我建议您做的是:

  1. 配置Web服务器为每个图像请求返回304。304表示文件没有被修改,这意味着浏览器将从那里的缓存中获取文件。(信用:此超级用户答案

  2. 在网站的每个页面中,添加一个小脚本以捕获图像数据并将其发送到服务器。

  3. 将图像数据保存在服务器中。

  4. 瞧!

您可以从给定的链接中获取脚本。


超级用户答案未链接。
纳撒尼尔(Nathaniel)2009年

@Nathaniel:已修正
亚历山大

28

Wayback Machine上尝试以下查询:

http://web.archive.org/web/*sa_re_im_/http://codinghorror.com/*

这将为您提供来自archive.org存档的encodinghorror.com的所有图像。这将返回3878张图像,其中有些是重复的。它不会是完整的,但是一个良好的开端仍然是。

对于其余图像,您可以使用来自搜索引擎缓存的缩略图,然后在http://www.tineye.com/上使用它们进行反向查找。您为其提供缩略图图像,它将为您提供预览和指向在网络上找到的紧密匹配图像的指针。


1
现在返回404?
rogerdpack '04

我做了一个工具,可以从Wayback Machine自动获取备份:github.com/hartator/wayback-machine-downloader
Hartator

26

dd如果(1)原始磁盘在某处可用,则对建议+1 。(2)图像是简单的文件。然后,您可以使用取证“数据雕刻”工具(例如)拉出所有看起来像JPG / PNG / GIF的可靠范围。我已经用这种方式擦除了iPhone上95%以上的照片。

开源工具“至上”及其后继“手术刀”可用于此目的:

http://foremost.sourceforge.net/

http://www.digitalforensicssolutions.com/Scalpel/


2
一旦获得dd图像,Photorec也可能会有用。

最重要的是可以通过Fedora上的yum获得

26

幸运的是,后代会没事的。

即使只有一些这样的大石头,科学家/语言学家也弄清楚了很多。

罗塞塔石碑

如果丢失了几张照片,则将其留给他人在几千年后进行计算。

希望你在笑一点。:)


5
好吧,你至少是从我这里

21

您也可以随时尝试archive.org。使用Wayback机器。我用它来恢复我网站上的图像。


3
至少对于CodingHorror来说似乎没有太多的缓存。我确实看到了blog.stackoverflow的图像。

我曾经使用互联网Wayback机重建了一个网站,但此后我尝试了几次,但它实际上并没有存档很多网站...
djangofan

看起来可以追溯​​到2004年,这里是web.archive.org/web * / codinghorror.com

谢天谢地,它没有robots.txt文件,是吗?:)
Synetech

14

因此,绝对最坏的情况是,您无法恢复任何东西。该死的。

尝试抓住缩小的Google,然后将它们放入反向图像搜索引擎TinEye中。希望它应该抓住人们所做的任何重复或重新主持。


14

这是一个远景,但您可以考虑:

  • 发布您丢失的确切图片列表
  • 通过所有读者的互联网缓存将检索过程众包。

例如,请参见Nirsoft Mozilla Cache Viewer

替代文字
(来源:nirsoft.net

它可以通过简单的命令行快速挖掘出任何可能仍然存在的“ blog.stackoverflow.com”图片:

MozillaCacheView.exe -folder "C:\Documents and Settings\Administrator\Local Settings\Application Data\Mozilla\Firefox\Profiles\acf2c3u2.default\Cache" 
/copycache "http://blog.stackoverflow.com" "image" /CopyFilesFolder "c:\temp\blogso" /UseWebSiteDirStructure 0

注意:它们具有用于Chrome的相同的缓存浏览器

替代文字
(来源:nirsoft.net

(我必须拥有15天的blog.stackoverflow.com图片)

Internet ExplorerOpera


然后更新公共列表,以反映读者报告在其缓存中发现的内容。


12

过去,我使用http://www.archive.org/提取缓存的图像。这很受欢迎,但对我有用。
另外,当尝试恢复旧网站上使用的库存照片时,当我只有缩略图并且需要全尺寸图片时,www.tineye.com很棒。

我希望这可以帮助你。祝好运。


几分钟前,我浏览了archive.org,以查看codinghorror.com图像,而我单击的几则帖子没有任何显示。
George Stocker

Archive.org会在数据首次建立索引后的几个月发布数据。
基督教徒

10

这可能不是最简单或最可靠的解决方案,但是像Evernote之类的服务通常在将文本和图像存储在应用程序中时会同时保存这些文本和图像-也许一些有用的保存了您文章的读者可以保存图像并将其发送回给您?


10

我在archive.org方面拥有丰富的经验。即使您无法从站点中提取所有博客文章,它们也会保留定期快照:

替代文字

这样,您可以检出每个页面并查看您撰写的博客文章。如果archive.org没有所有帖子的名称,则可以在Google的缓存中轻松找到它们。存档尝试保留图像,Google缓存将包含图像,而我最近没有清空缓存,因此我可以为您提供最新的博客文章:)


我试图从我以前工作过的一家公司的网站上获取一些数据。这对文字有益,对图像则少。但是YMMV
ChrisF

我相信谷歌网页缓存并不会存储图像。
纳撒尼尔(Nathaniel)2009年



7

大约五年前,我用来存储所有数码照片的外部硬盘的早期版本严重失败。我使用制作了硬盘驱动器的映像,dd并编写了一个基本工具来恢复看起来像JPEG映像的任何内容。摆脱了我的大部分照片。

因此,问题是,您是否可以获得包含这些映像的虚拟机磁盘映像的副本?



7

我建议将archive.org和请求匿名器(如[Tor] [2])结合使用。我建议使用匿名器,因为这样您的每个请求都将具有随机的IP和位置,并且您可以避免由于异常大量的请求而被archive.org禁止(如Google那样)。

祝您好运,该博客中有很多珍宝。


鉴于Jeff想要向archive.org捐款,因此滥用匿名器可能并非绝对不能接受。但我仍然想为此而踢。:-|

6

回溯机将有一些。Google缓存和类似的缓存会有一些。

您可以执行的最有效的操作之一是通过电子邮件发送原始海报,以寻求帮助。

实际上,我确实有一些基础设施建议,因为在清理完所有这些之后。根本问题不是实际上的备份,而是缺少站点复制和缺乏审核。如果您通过私人电子邮件字段的内容给我发送电子邮件,以后,当您有点后退时,我很乐意与您讨论此事。


6

如果您的图像存储在Flickr或CDN之类的外部服务上(如您的一个播客中所述),您可能仍在其中拥有图像资源。

可以在Google图片上搜索某些图片,然后单击“查找相似图片”,也许其他网站上也有副本。


5

archive.org有时会隐藏图像。手动获取每个URL(或编写一个简短的脚本),然后像这样查询它们:

string.Format(“ GET / * / {0}”,nextUri)

当然,要进行搜索非常麻烦。

我的浏览器缓存中可能有一些。如果可以的话,我会将它们托管在某个地方。


4

如果您希望尝试抓取用户的缓存,则可能希望将服务器设置为响应304 Not Modified所有条件性GET(“ If-Modified-Since”或“ If-None-Match”)请求,浏览器会使用该请求重新验证其缓存的资料。

如果您在静态内容(如图像)上的初始缓存标头相当宽松(允许将内容缓存几天或几个月),则可以在一段时间内保持重新验证请求。在这些请求上设置一个cookie,并吸引那些用户针对他们的缓存运行脚本以提取他们仍然拥有的图像。

不过要当心:当您开始使用尚不存在的内联资源来放置任何文本内容时,您可能会在重新验证器达到404时清除那些缓存的版本。



4

冒着指出明显风险的风险,请尝试为图像挖掘自己计算机的备份。我知道我的备份策略非常随意,我在外部驱动器,刻录的光盘和zip / tar文件中挂了很多文件的多个副本。祝好运!


4

我已经设法从Snow Leopard的Safari缓存中恢复了这些文件:

bad-code-offset-back.jpg
bad-code-offset-front.jpg
code-whitespace-invisible.png
code-whitespace-visible.png
coding-horror-official-logo-small.png
coding-horror-text.png
codinghorror-search-logo1.png
crucial-ssd-128gb-ct128m225.jpg
google-microformat-results-forum.png
google-microformat-results-review.png
kraken-cthulhu.jpg
mail.png
powered-by-crystaltech-web-hosting.png
ssd-vs-magnetic-graph.png

如果其他人想尝试,我已经编写了一个Python脚本将其提取到〜/ codinghorror / filename,并将其放在此处

我希望这有帮助。


3

您是否有机会查看托管服务提供商是否有任何备份(某些旧版本)?


看起来不太好..他们的备份程序无法备份虚拟机的硬盘文件,因此没有备份。
杰夫·阿特伍德

2

这些数据对您有价值多少?如果这笔钱相当可观(数千美元),则可以考虑向托管服务提供商询问用于存储网站数据的硬盘驱动器(如果由于硬件故障而导致数据丢失)。然后,您可以将驱动器带入正轨或其他一些数据恢复服务,以查看可以从驱动器中取出的内容。由于驱动器上也可能存在其他人无法恢复的数据,因此进行协商可能很棘手,但是如果您真的很在意它,就可以解决它。


据我所知,服务器是一台VM。
splattne

1
即使如此,@ splattne仍可以将许多数据恢复为非零机会。

将必须是高度专业化的服务。

2

很遗憾听到这个消息,我为您和时间感到非常烦恼-我想要离线复制您的一些帖子,并在整个网站上进行HTTrack,但不得不退出(这是几个星期前),我停了

如果主机下降了一半,并且事实上我猜您是一个不错的客户...我会要求他们将硬盘驱动器(因为我猜他们应该使用RAID)发送给您,或者自己进行恢复。

尽管这可能不是一个快速的过程,但我为客户端为一台主机完成了此操作,并且能够完整地恢复整个数据库(...基本上,主机尝试对其使用的控制面板进行升级并将其弄乱。但没有任何内容被覆盖)。

无论发生什么事-您在SO网站上的所有粉丝都祝您好运!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.