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


http://blog.stackoverflow.com
http ://www.codinghorror.com

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

我正在开始从Web爬网程序缓存中恢复网站的缓慢而痛苦的过程。 br />
有一些自动工具可以从Internet网络蜘蛛(Yahoo,Bing,Google等)的缓存中恢复网站,例如Warrick,但使用此工具却产生了一些不好的结果:


我的IP地址因使用该IP地址而被迅速禁止使用
我遇到很多500和503错误,并且“等待5分钟……”
最终,我可以更快地恢复文本内容用手

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

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

关于从Internet缓存中恢复网站页面的任何一般技巧,尤其是从网站页面恢复存档图像的地方?您完全,完全,完全正确!但是正确不能解决我眼前的问题……除非您拥有时间机器……)

评论

当像Jeff Atwood这样的人本可以一口气丢掉两个完整的网站时...好吧。我将回顾我自己的备份过程,其中一个:P

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

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

有些人会花很多时间来获得SU ...上的代表...

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

#1 楼

这是我在黑暗中的疯狂选择:将您的Web服务器配置为针对每个图像请求返回304,然后通过在某处张贴URL列表并在播客上要求所有读者加载每个URL并获取任何图像来众包恢复从其本地缓存加载。 (这只有在您恢复HTML页面本身并带有<img ...>标记后才能起作用,您的问题似乎暗示您将能够这样做。) ,“从读者的网络浏览器缓存中获取。”您有许多读者和播客听众,因此您可以有效地动员大量可能最近浏览过您的网站的人。但是,从各种Web浏览器的缓存中手动查找和提取图像非常困难,并且如果足够容易的话,那么许多人就会尝试并成功,那么整个方法将发挥最佳作用。因此采用304方式。读者所需要做的就是单击一系列链接,并拖出确实加载到网络浏览器中的所有图像(或右键单击并另存为等),然后通过电子邮件将其发送给您或将其上传到您设置的中心位置或其他任何位置。这种方法的主要缺点是Web浏览器的缓存不会回到过去。但是,只需要花几天时间在过去几天里刚从2006年开始发帖的一位读者,就可以挽救一个非常古老的形象。只要有足够多的观众,一切皆有可能。

评论


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

–delux247
09年12月11日在22:17

在这里实施? diovo.com/2009/12/…

–杰夫·阿特伍德
09年12月14日在21:18

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

–phloopy
09年12月15日6:00

我的天啊!很好的分析。

–SonerGönül
2011年8月7日14:41

实际上,您应该能够使用画布检索图像并通过AJAX将其发送回首页。

–TomášZato-恢复莫妮卡
2014年5月20日在17:24

#2 楼

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

评论


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

–尼古拉斯·韦伯(Nicolas Webb)
09年12月11日在21:01

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

– Alex Rozanski
09年12月11日在21:04

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

– Glen Solsberry
09年12月11日在21:08

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

–溯源
09年12月11日在21:09

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

– Ph子
09年12月11日在21:14

#3 楼

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


stay-puft-marshmallow-man.jpg
internet-properties-dialog.png
yahoo-homepage-small .png
password-show-animated.gif
tivo2.jpg
michael-abrash-graphics-program

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

(3)如果可以自动进行此操作事实证明,它可以成功拍摄10张以上的图像。

评论


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

–普罗米修斯
19-09-6在22:47

#4 楼

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



Google在左侧,Bing在右侧。

评论


是的,最糟糕的情况是,我们必须放大Google的缩略图。我听说Bing会存储较大的缩略图吗?

–杰夫·阿特伍德
09年12月11日在20:59

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

–乔治·斯托克(George Stocker)
09年12月11日在21:03

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

–尼克·贝拉迪(Nick Berardi)
09年12月11日在21:04

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

–尼克·贝拉迪(Nick Berardi)
09年12月11日在21:09

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

– Sep332
09年12月11日在21:48

#5 楼

很抱歉听到有关博客的消息。不去上课但是我的确发现了Imageshack上的图像。它们是真的吗,还是有人保留它们的副本。

http://profile.imageshack.us/user/codinghorror

它们看起来像什么例如456张全尺寸图片。这可能是恢复一切的最佳选择。也许他们甚至可以为您提供转储。

#6 楼

杰夫,我在这里为您写了一些内容。总之,我建议您做的是:


配置Web服务器,以针对每个图像请求返回304。 304表示未修改文件,这意味着浏览器将从缓存中获取文件(如果存在)。 (信用:此超级用户答案)
在网站的每个页面中,添加一个小脚本以捕获图像数据并将其发送到服务器。
将图像数据保存在服务器中。
瞧!

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

评论


超级用户答案未链接。

–纳撒尼尔(Nathaniel)
09年12月13日在0:55

@Nathaniel:已修正

–alexanderpas
2010-6-25 at 0:14

#7 楼

在Wayback Machine上尝试以下查询:

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


这将为您提供来自archive.org存档的encodinghorror.com的所有图像。这将返回3878张图像,其中一些是重复的。它将不完整,但是仍然是一个良好的开始。 ://www.tineye.com/。您为其提供缩略图图像,它将为您提供预览和指向在网络上找到的紧密匹配图像的指针。

评论


现在返回404?

–rogerdpack
2012年4月3日在21:52

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

– Hartator
15年8月15日在18:53



#8 楼

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

即使只有这种大石头,科学家/语言学家也发现了很多东西。如果丢失了几张照片,请将其留给某人在几千年后找出来。 :)

评论


好吧,至少你是我的笑声;-)

–食人魔诗篇33
09年12月16日在17:09

#9 楼

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

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

http://foremost.sourceforge.net/

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

评论


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

–泡沫
09年12月11日在22:28

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

–溯源
09年12月12日下午16:50

#10 楼

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

评论


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

–极客方法
09年12月11日21:00

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

– djangofan
09年12月11日在21:35

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

–克里斯·纳瓦(Chris Nava)
09年12月11日23:41

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

– Synetech
09年12月12日在20:06

#11 楼

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

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

#12 楼

这是一个长期的尝试,但是您可以考虑:


发布您丢失的确切图片列表
通过所有读者的Internet缓存将检索过程集中起来。例如,请参阅Nirsoft Mozilla缓存查看器:

(来源:nirsoft.net)

它可以快速地挖掘任何“博客”。 “ 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 Explorer,或Opera。


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

#13 楼

过去,我使用http://www.archive.org/提取缓存的图像。碰碰运气还是碰碰运气,但对我有用。需要完整尺寸的图像。

希望对您有所帮助。祝你好运。

评论


几分钟前,我浏览了archive.org,以获取codinghorror.com图片,而我点击的几则帖子却没有任何显示。

–乔治·斯托克(George Stocker)
09年12月11日在20:58

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

–基督徒
09年12月12日15:39

#14 楼

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

#15 楼

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




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

评论


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

– ChristF
09年12月11日在22:58

我相信Google网络缓存不会存储图像。

–纳撒尼尔(Nathaniel)
09年12月13日在0:51

#16 楼

您是否尝试过自己的本地浏览器缓存?仍然有一些比较新的东西仍然存在。
http://lifehacker.com/385883/resurrect-images-from-my-web-browser-cache

(或您可以编译所有丢失图像的列表,每个人都可以检查其缓存以查看是否可以填充空白)

#17 楼

对未来的建议:我使用Windows Live Writer撰写博客,除了将其发布到博客之外,它还将帖子的本地副本保存在我的计算机上。

评论


另外,使用Windows Live Writer只是很好的常识。

–极客方法
09年12月12日在3:33

#18 楼

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

#19 楼

Web存档会缓存图像。它现在承受着沉重的负担,您应该在2008年左右之前就可以了。 />

#20 楼

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

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

评论


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

– hstoerr
09年12月15日在7:14

#21 楼

回溯机将有一些。 Google缓存和类似的缓存会包含一些缓存。确实有一些基础设施建议,因为这些都需要清理。根本问题不是实际上是备份,而是缺少站点复制和缺乏审核。如果您通过私人电子邮件字段的内容给我发送电子邮件,稍后,当您站起来时,我很乐意与您讨论此事。

#22 楼

如果您的图像存储在Flickr或CDN之类的外部服务上(如您的一个播客中所述),您可能仍然在其中拥有图像资源。在Google图片上点击“查找相似图片”,也许其他网站上也有副本。

#23 楼

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

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

搜索当然很麻烦。

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

#24 楼

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

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

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

#25 楼

您可以使用TinEye通过使用Google缓存搜索缩略图来查找图像的重复项。不过,这只会对您从其他网站拍摄的图像有所帮助。

评论


不,这将有助于其他人从CH拍摄的图像。

–心怀不满的山羊
09年12月24日在23:24

@DisgruntledGoat:起初我甚至都没有想到过:D

–旅行者
2010年1月6日,0:10

#26 楼

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

#27 楼

我已经设法从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,我已经在这里在线了。

我希望这会有所帮助。

#28 楼

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

评论


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

–杰夫·阿特伍德
09年12月11日在21:03

#29 楼

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

评论


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

–splattne
09年12月11日在21:32

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

–楔
09年12月11日在22:05

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

– Ph子
09年12月11日在22:10

#30 楼

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

如果主机下降了一半-实际上我猜你是一个很好的客户...我会要求他们要么将硬盘发送给你(正如我所猜测的那样)他们应该使用RAID)或自己进行恢复。基本上,主机尝试对其使用的控制面板进行升级并将其弄乱。.但是什么都没有被覆盖)。 />