はてなダイアリー と はてなブックマーク をローカルマシンへバックアップする
はてなのサービスの中では、はてなダイアリーとはてなブックマークをよく使っている。
これらのデータが消えると悲しいので、定期的にローカルマシンへダウンロードしてバックアップすることにした。
(多分サーバ側でもちゃんとバックアップしてあるだろうけど、念のため)
やり方
rubyを使う。
まず、WWW::Mechanizeを入れておく
gems install mechanize
あとは、cronやタスクなどで、定期的に以下のコマンドを実行させればOK!
ruby ./hatena_backup.rb "ユーザ名" "パスワード"
./backup ディレクトリに、データが月ごとに"diary[現在の月].xml"のようなファイル名で保存される。
以下、スクリプト本体
hatena_backup.rb
#!ruby -Ku require 'date' require 'rubygems' require 'mechanize' BackupDir='backups' # write backup data to file def write_data(basename, ext, data) Dir.mkdir(BackupDir) unless FileTest.directory?(BackupDir) File.open("#{BackupDir}/#{basename}" + Time.now.strftime("%m") + ext, 'wb') do |f| f.write data end end # init username=ARGV[0]; password=ARGV[1] raise 'give me parameters' if (!username || !password) mechanize = WWW::Mechanize.new mechanize.user_agent_alias = 'Windows IE 6' # login page=mechanize.get('https://www.hatena.ne.jp/login') form = page.forms[0] form['name'] = username form['password'] = password mechanize.submit(form) # hatena bookmark data=mechanize.get_file('http://b.hatena.ne.jp/dump') write_data 'bookmark', '.xml', data # hatena diary data=mechanize.get_file( "http://d.hatena.ne.jp/#{username}/export" ) write_data 'diary', '.xml', data # logout mechanize.get("https://www.hatena.ne.jp/logout")
mechanize.get_file, write_data をしている箇所を書き換えれば、ほかのサービスのデータをバックアップすることもできると思う。