pukiwikiのdumpを保存するスクリプト
crontabとかで定期実行する用。
#!/usr/bin/ruby # -*- coding: utf-8 -*- require 'net/http' require 'uri' DOMAIN = 'www.foobar.com' PATH = '/pukiwiki/index.php' ADMIN_PASSWORD = 'PUKIWIKI_PASSWORD' BASIC_USER = 'BASIC_AUTH_USER' BASIC_PASSWORD = 'BASIC_AUTH_PASSWORD' PREFIX = 'pukiwiki_' POSTFIX = '.tar.gz' begin #get params params = [] query = { "encode_hint" => "ぷ", "cmd" => "dump", "page" => "トップページ", "act" => "dump", "pcmd" => "tgz", "bk_wiki" => "true", "bk_attach" => "true", "bk_backup" => "true", "pass" => ADMIN_PASSWORD, "ok" => "OK", } query.each{|k, q| params << URI.encode(k) + "=" + URI.encode(q) } #get archive archive = nil Net::HTTP.version_1_2 req = Net::HTTP::Post.new(PATH) req.basic_auth(BASIC_USER, BASIC_PASSWORD) req.body = params.join('&') http = Net::HTTP.start(DOMAIN, 80) {|http| res = http.request(req) archive = res.body } #write archive date = Time.now.strftime("%Y%m%d%H%M%S") File.open(PREFIX + date + POSTFIX, "wb") {|f| f.write(archive) } rescue => e puts e end
Basic認証に対応してます。必要なければ適当にコメントアウトするよろし。
“encode_hint=ぷ”ってなんなんだろ……文字化け対策?