プライベートモードで閲覧中です。

sugar pot : バックアップファイルからパーマネントリンクを保持して記事を復活させる方法

ほろ苦い夢のかけらのおすそわけ

スポンサーサイト

--年--月--日(--)

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
#
カテゴリ:スポンサー広告

trackback

バックアップファイルからパーマネントリンクを保持して記事を復活させる方法

2006年11月20日(月) コメント:4 トラックバック:3

[2006/11/21]ログ整理に、fxcel2を使用する旨、書き足し、整理して、全面的に書き直しました。

special thanks to 麻生&sug


フォーラムで記事のURLが変わってしまう旨書かれていましたので、私が試みた方法について書きます。ただし、私がやってみた手順というだけですので、「失敗はどんなことがあっても困る」というかたは実行を思いとどまってください。

また、この作業のうち、手順(3)以降はメンテナンス終了確定してから行なったほうが良いかもしれません。本日もサーバ(blog9の場合)が不安定とのことですので、少し状況を見てください。ほぼ完璧なバックアップファイルが残っているかたは今行なっても問題はないと思われます。

(注)タグについては考慮していません。


バックアップファイルからのログのインポートの手順

削除したり失った記事があることを前提に話を進めます。手順は以下の通りです。

  1. バックアップファイルを作成する
  2. 記事番号とその状況(データの有無)を把握し、失ったデータを確保する
  3. バックアップファイルにデータを加える
  4. インポートミスを防ぐ工夫をする
  5. 残存するデータを全削除する
  6. 加工したバックアップファイルをインポートする

(1)バックアップファイルを作成する

まずは何をおいても、即刻バックアップを取ります。それまでバックアップをきちんと取っている場合も、「最新データ」を確保しておきます。ただし、上書きはしないで別の名前で保存しましょう。ファイル名は日付が向いています。

(2)記事番号とその状況(データの有無)を把握し、失ったデータを確保する

最初に、記事の状況を把握しましょう。一番最初の記事(blog-entry-1.html)から最新記事(blog-entry-x.html)まで、いくつの記事を書いてきて、今残存しているデータはどれか。

重要なのは、検索サイトやソーシャルブックマーク、よそのブログなどでリンクされている記事です。パーマネントリンク(記事のURL<記事番号が元になっている)が変更してしまうと、リンク切れが起こってしまいます。これらを防ぐために、残存するデータと、検索サイトで把握できるデータで自分の記事のおおよそをつかみます。

まず、Harukiya Archivesのfxcel2、麻生さんのmakelogなどで全記事の一覧の元になる表を作成します。これらのテンプレートの導入のしかたは、ブログで小説!:バックアップ、とろうよ~(ToT)をご覧ください。

たとえば、このブログをfxcel2で表示すると、こんな風になります。

sugar potをfxcel2で表示 (新規ウィンドウを開きます) (このウィンドウで開きます)

「下書き」の記事は表示されませんので、全記事を表示するために、いったんブログを非公開にし(コメント:「メンテナンス中です」とでもしておくと良いでしょう)、過去の記事の管理ですべての記事を「公開」にしてからfxcel2で表示します。非公開にしたくない場合は、公開の記事だけで一旦表を作成します。

日付順にソートされているfxcel2の表をコピーして、ExcelやCalcなどの表計算ソフトの新規ファイルにペーストします(csv出力もできますがコピペが簡単そうです)。ペーストしたら、ID/昇順でソートします。

IDタイトルサマリー(概要)分類(カテゴリ)作成日作成時間
1このブログについてこのブログは…はじめに2006.10.241:11:45
5マフラー編み始めました。冬もすぐそこなので、… 日記2004.11.1220:40:46

残存するデータが1、5とすると、このようになるはずです。このままインポートすると、blog-entry-5.htmlのはずの「マフラー編み始めました。」がblog-entry-2.htmlになってしまいます。2~4を復活せねばなりません。表に2~4の行を挿入します。

IDタイトルサマリー(概要)分類(カテゴリ)作成日作成時間
1このブログについてこのブログは…はじめに2006.10.241:11:45
2
3
4
5マフラー編み始めました。冬もすぐそこなので、… 日記2004.11.1220:40:46

ここからが結構面倒な作業なのですが、地道にデータを拾って復活させていきます。データはGoogleYahoo! Japanで見つけてきます。

非公開でブログを運営してる場合は、検索サイトには掲載されていないはずですので、残念ながらこの方法でデータを拾ってくることはできません。

「site:ブログのURL」をGoogleの検索窓に入力して検索すると、Googleに掲載されているそのブログ内の記事がヒットします。ここでURLを把握、キャッシュをクリックしてデータを確保(保存)します。

キャッシュの確保はできるだけ早いほうが良いので(時間が経つと新たにクロールされて上書きされてしまう可能性があります)、次々とすみやかに保存していきましょう。

キャッシュが確保できたら、URLを頼りに、上の表を充実させていきます。作成日や作成時間も、次のことを考えるとあると便利ですが、まずはID(記事番号)とタイトルを把握します。先ほど公開記事のみで表を作成したかたは、その前に[管理者ページ]>[過去の記事の管理]で、下書き状態の記事を検索し、残存しているデータがあればそれも加えていきます。

IDタイトルサマリー(概要)分類(カテゴリ)作成日作成時間
1このブログについてこのブログは…はじめに2006.10.241:11:45
2ブログ初日…
3
4こうさぎ
5マフラー編み始めました。冬もすぐそこなので、… 日記2004.11.1220:40:46

上記が作業後の表です。2と4はキャッシュから拾えましたが、3はどうしても見つからなかった例です。

(3)バックアップファイルにデータを加える

次はファイルの加工、その1です。その前に……

バックアップファイルの書式

手元のバックアップファイルを開いてみてください。バックアップファイルの書式を知りましょう。こんな感じです。どのデータが当たるかについては変数と説明を示しました。

  1. AUTHOR: <%authour_name>(管理人名)
  2. TITLE: <%topentry_title>(記事タイトル)
  3. STATUS: [Publish(公開) / Draft(下書き)]
  4. ALLOW COMMENTS: [1(コメントを受け入れる) / 0(受け入れない)]
  5. CONVERT BREAKS: 0(セパレータ)
  6. ALLOW PINGS: [1(トラックバックを受け入れる) / 0(受け入れない)]
  7.  
  8. PRIMARY CATEGORY: <%topentry_category>(カテゴリ)
  9. CATEGORY: FC2ブログではPRIMARY CATEGORYに同じ
  10.  
  11. DATE: <%topentry_month>/<%topentry_day>/<%topentry_year> <%topentry_hour>:<%topentry_minute>:<%topentry_second> (投稿日時:月/日/年 時:分;秒)
  12. -----
  13. BODY:
  14. <%topentry_body>(記事本文)
  15. -----
  16. EXTENDED BODY:
  17. <%topentry_more>(記事追記)
  18. -----
  19. EXCERPT:
  20. FC2ブログでは別途書き出しなし
  21. -----
  22. KEYWORDS:
  23.  
  24. -----
  25. COMMENT:
  26. AUTHOR: <%comment_name>(コメント投稿者名)
  27. EMAIL: <%comment_mail>
  28. IP: (IPアドレス)
  29. URL: <%comment_url>(URL)
  30. DATE: <%comment_month>/<%comment_day>/<%comment_year> <%comment_hour>:<%comment_minute>:<%comment_second> (コメント投稿日時:月/日/年 時:分:秒)
  31. TITLE: <%comment_title>(コメントタイトル)
  32. SECRET: [0(公開) / 1(非公開)]
  33. PASS: (エンクリプトされたパスワード)
  34. <%comment_body>(コメント文)
  35. -----
  36. PING:
  37. TITLE: <%tb_title>(トラックバック元の記事タイトル)
  38. URL: <%tb_url>(トラックバック元の記事URL)
  39. IP: (IPアドレス)
  40. BLOG NAME: <%tb_blog_name>(トラックバック送信元のウェブサイト名)
  41. DATE: <%tb_month>/<%tb_day>/<%tb_year> <%tb_hour>:<%tb_minute>:<%tb_second>(トラックバック送信日時:月/日/年 時:分:秒)
  42. <%tb_excerpt>(概要文)
  43. -----

これが1つの記事の構成です。このひとかたまり(以下ブロックと呼びます)を1記事として、並んでいる順に番号が振られていく訳です。その番号(entry-no.)がURLの http://ブログアカウント.blog(N).fc2.com/blog-entry-X.html のXの部分になります。

削除記事を復活する

(2)で作成した表を見ながら、一番データが残っていると思われるバックアップファイルに、載っていない(=削除してしまった、あるいは失ってしまった)「記事」を1ブロックずつ加えていきます。以下は例です。

  1. AUTHOR:sugar(しゅが)
  2. TITLE: ダミー
  3. STATUS: Draft
  4. ALLOW COMMENTS: 1
  5. CONVERT BREAKS: 0
  6. ALLOW PINGS: 1
  7. PRIMARY CATEGORY:ノンカテゴリ
  8. CATEGORY: ノンカテゴリ
  9.  
  10. DATE: 01/01/2003 00:00:00
  11. -----
  12. BODY:
  13.  
  14. -----
  15. EXTENDED BODY:
  16. .
  17.  
  18. -----
  19. EXCERPT:
  20.  
  21. -----
  22. KEYWORDS:
  23.  
  24. -----
  25. -----

これを挿入すると、下書きの記事がひとつできます。下書きの記事がひとつできます。日付は2003年1月1日00:00:00として日付でソートすると前のほうに集まるようにしましたが、お好みでどうぞ。もちろん、日付も記事内容もカテゴリも、管理者ページで変更できる項目はすべて後から編集できます。

また、キャッシュから拾ったデータがある場合は、ダミーではなく、そのデータを入れていきます。

例でいうと記事1と記事5の間に3ブロック挿入することになりますが、記事3はダミーを、記事2と4はデータの入ったブロックを挿入します。

ファイル上でデータを入れていくと分かりづらい場合は、とりあえず記事の数の分だけダミーブロックを挿入し、インポート後[管理者ページ]>[過去の記事の管理]>[編集]で、データを後から入れるという方法も取れます。ただし、コメント・トラックバックの「復旧」はバックアップファイルに書き込むという方法以外はできません。

(4)インポートミスを防ぐ工夫をする

ここでは、インポートミスを防ぐ工夫を2つ、行ないます。(3)と(4)は、できるなら同時に行なうほうが効率的ですが、混乱するような場合は(3)→(4)の順に行なってください。

ファイルの分割

データが大きいとインポートできないため、ファイルを分けるようにします。記事の長さにもよりますが、100~120記事程度が適当でしょう。私は100記事ずつに分けました。

「まちがいのもと」の除去

「まちがいのもと」とは、「-----」です。上記のようにバックアップファイルの「区切り」は「-----」です。記事内やコメント内にこの「-----」があった場合、インポートの際にそこで記事が終わりとみなされ、そこから先は次の記事番号が振られる、という現象が起きてしまいます。記事番号がずれてしまうのです。そこで、これを除去します。この作業は手作業で気長に行ないます。

(5)残存するデータを全削除する

サーバの不具合によってデータを復旧する場合、この作業はサーバが安定してから行ないましょう。アナウンスがないので分かりませんが、運営側でデータを可能な限り復旧してくれているかもしれません。ほぼ完璧なバックアップがある場合は、ここから先をすすめても大丈夫です。

[管理者ページ]>[ホーム]>[過去の記事の管理]から、残っている記事をすべて消去します。最初にこれを行なうときはかなり勇気が要りますが、オリジナルのバックアップファイルがあれば、いくらでも復活できますので、えいやっといきます。1つでも残しておくと1から番号が振られませんので思い切って。

(6)加工したバックアップファルをインポートする

[管理者ページ]>[ツール]>[ログのインポート]から、作成したファイルを最初から順にインポートしていきます。

実際にやってみたら…

「もっと効率がいい方法があるよ」「うまくいったよ」「やってみたけどできないよ」など、コメントいただければ幸いです。

blog9blog82のかたがたが見に来てくださっています。お役に立てれば幸いです。お互い、大変な目にあったよね。自分で何とかできるところは何とかしましょう!負けるもんかー(by BarbeeBoys)!

[追記:2006/11/22 1:55]書き直したのを改めて読んでみると、ダミーブロックを挿入するのに、表計算ソフトのほうでもっと簡単にできそうな気がしてきました。差分を拾って、それから……うん、多分できる(でも私はとりあえず、ここまで)。できるよー、というかた、是非お知らせください。お願い。

#643
カテゴリ:101 インターネット(www)
タグ[ バックアップ blog9 blog82 パーマネントリンク ]

trackback

<<データ消失と復旧について | 意外性のひと>>

コメント(-4件)

-:管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

  • 2006年12月01日(金)12:44:16
-:管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

  • 2006年12月01日(金)13:41:46
hassaku:

昨日現在(20080421)『「まちがいのもと」とは、「-----」です』
は、改修されて増した。
ハイフン5つ並びを特殊コードの並びに置換してくれちゃいます。

エクスポート時にしているのか、エントリー時にしているのか確認していませんが、たぶん、前者だと思いますけど...

これで、残る問題は、
・ユーザタブ
・パーマネントURL
ですね。

  • 2008年04月22日(火)09:47:29
  • URL
  • 編集
sugar:フォーラムで

直っていることに気付きました。お知らせありがとうございます。

バックアップ回りはかなり変わってきているので、修正しなくちゃですね(^^;

ユーザータグは是非バックアップしてほしいですね。
MT変数でつかわれていないものがあるので、それを流用すれば簡単じゃん?
と思うのは素人考えなのでしょうか(^^:

  • 2008年04月23日(水)08:40:20
  • URL
  • 編集
コメントの投稿

トラックバック(-3件)

http://bittersweetdreams.blog9.fc2.com/tb.php/643-553076fd

サーバクラッシュとバックアップ~<日別集計>

ブログを書くものにとっては、いや、ブロガーだけでなくてネットに関わるすべての人にとって、サーバがいかれてしまうのはの恐ろしいことです。不幸にして、FC2ブログでは先日サーバに障害が発生しました。#9サ

  • 2006年11月24日(金)13:07:08
  • from David the smart ass
ブログのバックアップを取ろう

バックアップ取ろうよキャンペーンバックアップ取ろうよキャンペーン:FC2ブログの歩き方を読んで刺激を受けました。バックアップ方法が詳しく書かれているので、FC2ブログをお使いの方は必見です。上記記事からリ

  • 2006年12月07日(木)02:05:15
  • from necox beta2.0
FC2 ブログパーマネントリンクを考慮したリストア用ツール

FC2 ブログバックアップファイルにパーマネントリンクを保持するためのダミー記事を挿入するスクリプトプログラムを perl で書きました。これは記事番号が歯抜けになっている時に使用するためのものです。簡単なものです

  • 2006年12月16日(土)00:47:56
  • from ヘタレな趣味の道

Bookmarked

Blog Battler

ブログバトラー

Twitter

    フリーエリア

    上部の説明

    下部の説明

    Utilities

    Ad

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。