はてなブログを「blogsync」でコマンド一発バックアップ

f:id:karaage:20190328123433j:plain:w640

はてなブログを自動でバックアップしたい

 1年くらい前に、はてなブログ運営さんの手違いで、ブログが全部消えてしまったことがありました。

 幸いにも、このときはすぐ復活してもらうことができたのですが、バックアップの大切さを思い知りました。思い知ったものの、めんどくさいことを習慣化できるほど出来た人間ではありません。バックアップ若干手間がかかるので、気づいたらサボっていました。人間簡単には変われませんし、すぐ痛い記憶は忘れてしまいますね。

 しかしながら「なんとか自動化したいなー」という気持ちがあったため、ようやく理想(に近い)バックアップ方法を(偶然に)みつけることができたので紹介したいと思います。

「blogsync」を使ったはてなブログバックアップ

 はてなブログの中の人が作っている、はてなブログ用のCLIクライアント「blogsync」を使ってバックアップします。特徴は以下です。

  • コマンド一発でバックアップ(ローカルにマークダウン形式でダウンロード)
  • バックアップ対象は文章のみ(画像は保存されない)
  • ブログのAPI KEYが必要(よって、基本的に自分の管理しているブログのみが対象)
  • Mac用(各OS用のバイナリファイルはreleasesにあるので、詳しい人なら他のOSでもできると思います)

 ダウンロード先を、DropboxやGitHubでクラウドと同期すれば、簡単にクラウドにもバックアップできますね。

blogsyncでのバックアップ方法

 「blogsync」に詳しく書いてありますが、自分へのメモを兼ねて少し初心者向けに記載します。

初期設定

 blogsyncをHomebrewでインストールします。

$ brew install Songmu/tap/blogsync

 Homebrewに関しては以下記事参照ください。

 必要なフォルダを作成します。

$ mkdir ~/.config/blogsync
$ mkdir ~/blog_backup

 設定ファイル ~/.config/blogsync/config.yamlをテキストエディタで作成します。好きなエディタでOKです。Vimエディタなら以下です。

$ vim ~/.config/blogsync/config.yaml

 設定ファイルの書式は以下の通りです。

<blog url>:
  username: <hatena user name>
  password: <API KEY>
default:
  local_root: /Users/<mac user name>/blog_backup

 私の場合なら以下ですね。

karaage.hatenadiary.jp:
  username: karaage
  password: <API KEY>
default:
  local_root: /Users/karaage/blog_backup

 <API KEY>は、はてなブログの管理画面の「設定」 -> 「詳細設定」のページのAtomPubという項目にAPIキーとして書かれている文字数列です。大事な情報なので、人には教えないようにしましょう。

バックアップ手順

 設定さえ終わったら、あとは以下のコマンド1発でバックアップできます。

$ blogsync pull <blog url>

 私の場合は以下ですね。

$ blogsync pull karaage.hatenadiary.jp

 2回目からは、差分のみがダウンロードされます。

まとめ

 はてなブログをコマンド一発でバックアップ(ダウンロード)する方法を紹介しました。Macでターミナルを使える人なら、この記事を読みながらセットアップできるのではないかなと思います。ダウンロードスピードも速く、活躍しそうです。

 コマンドの実行までを、週に1回自動実行するようにしてダウンロード先をDropboxやGitHub等のクラウドと同期すれば、バックアップをほぼ完全に自動化できるのでないかなと思います。ただ、あんまり自動化しすぎると、自分の場合トラブルあって止まったときに気づけない弊害もあるので、しばらくはカレンダーに毎月タスクとして入れて、自分で月に1回くらい実行する運用にしようかなと考えています。

 バックアップに困っている人は、試してみると幸せになれるかもしれません。もし、もっと良い方法を知っている人は是非教えてください!

参考記事

はてなブログ記事のGitHub管理環境「push-to-hatenablog」のセットアップと使い方 - m's blog

関連記事