S3 にバックアップする
Perl
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
conf
lib
t
.gitignore
Changes
MANIFEST
Makefile.PL
README
README.pod

README.pod

NAME

shion-backup

SYNOPSYS

$ shion-backup OPTIONS CONFIGFILE...

DESCRIPTION

shion-backup は、YAML 形式で記述された設定ファイル CONFIGFILE の指定 に従いバックアップを取得し、リモートのストレージにアップロードする。

CONFIGFILE が複数指定された場合は、先頭から順に読み込まれ、以下の規 則でマージされる。

  • 型が違う場合、後の内容で上書きされる

  • 共に配列型の場合、後の内容が後ろに追加される。

  • 共に連想配列型同士の場合、各キー毎に前述の規則が適用される。

  • 上記以外の場合は、後の内容で上書きされる。

OPTIONS

--help, -h

このヘルプを表示する。

--dump-target, --dump, -d

展開済みターゲット設定を表示する。

--dump-config

読み込まれたマージ済み設定ファイルを表示する。

--workfile=FILE, -w FILE

バックアップ時の中間生成ファイルを指定する。

--noupload

バックアップを取得するがアップロードしない。

--progress

アップロード時にプログレスバーを表示する。

--debug

デバッグ表示を行う。

CONFIG FILE STRUCTURE

設定ファイルは、定められた構造規則に従っていなければならない。

設定ファイルが複数に分割されている場合は、すべてのマージが行われた後に 構造規則に従っていればよい。

ルート構造

%config := (
  'uploader' => %uploader,
  'template' => %templates,
  'target'   => @targets
)

アップローダ設定

%uploader := (
  'id'     => $id,
  'secret' => $secret,
  'url'    => $url,
)
$url

アップロード先のベースURL

テンプレート設定

%templates := (
  NAME => (
    'template' => ~ | $template_name | @template_name,
    *
  ),
  ...
)
NAME

テンプレート名

$template_name, @templare_name

ベースとするテンプレート名。

ターゲット設定

@targets := (
  %target,
  ...
)

%target := (
  'filename'   => $filename,
  'uploadsize' => ~ | $uploadsize,
  'arg'        => ~ | %arg,
  'template'   => ~ | $template_name | @template_name,
  'command'    => ~ | @command,
)

@command := (
  $command | &command,
  ...
)
$filename

アップロードするファイル名。

設定{uploader}{url} からの相対パスを指定する。

$uploadsize

一度にアップロードされるファイルサイズの目安で単位は MB。

アップロード前に生成される中間ファイルのサイズは、この値に近いものとな る。この中間ファイルは、アップロード後削除されるため、一連の動作で消費 されるディスクスペースは、最大でこのサイズに近いものとなる。

%arg

引数展開に用いられる任意の値を指定する。

大文字と0個以上のアンダースコアで指定されるキーは、予約されている。

$template_name, @template_name

ベースとするテンプレート名。

深さ優先でマージされる。

$command

実行するコマンド。system 関数により実行される。

実行時の標準入出力は、それぞれ前後のコマンドに接続される。

ただし、@command[0] の標準入力はクローズされる。また、 @command[-1] の標準出力は、アップロードを行うプロセスに接続される。

&command

実行するコマンド。perl の関数として実行される。

第1引数には、\%arg が渡される。

標準入出力の扱いは、$command に同じ。

変数展開

$command の値は、%arg の値を用いて変数展開される。

${$}

"$" に変換される。

${NAME:<STRING}

"STRING$arg{NAME}" に変換される。

${NAME:>STRING}

"$arg{NAME}STRING" に変換される。

${NAME}

"$arg{NAME}" に変換される。

定義済み変数

%arg の以下のキーは、特定の目的で使用される。

S3_RRS

値が真の場合、Reduced Redundancy Storage を使用する。

NOTE

$uploadsize が指定されている場合、バックアップの取得に長時間かかる場合 がある。

AUTHOR

YAMAMOTO, N. <nym at nym.jp>

LICENSE AND COPYRIGHT

Copyright (C) 2011-2012 YAMAMOTO, N. <nym at nym.jp>

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.