shion-backup
$ shion-backup OPTIONS CONFIGFILE...
shion-backup は、YAML 形式で記述された設定ファイル CONFIGFILE の指定 に従いバックアップを取得し、リモートのストレージにアップロードする。
CONFIGFILE が複数指定された場合は、先頭から順に読み込まれ、以下の規 則でマージされる。
型が違う場合、後の内容で上書きされる
共に配列型の場合、後の内容が後ろに追加される。
共に連想配列型同士の場合、各キー毎に前述の規則が適用される。
上記以外の場合は、後の内容で上書きされる。
- --help, -h
-
このヘルプを表示する。
- --dump-target, --dump, -d
-
展開済みターゲット設定を表示する。
- --dump-config
-
読み込まれたマージ済み設定ファイルを表示する。
- --workfile=FILE, -w FILE
-
バックアップ時の中間生成ファイルを指定する。
- --noupload
-
バックアップを取得するがアップロードしない。
- --progress
-
アップロード時にプログレスバーを表示する。
- --debug
-
デバッグ表示を行う。
設定ファイルは、定められた構造規則に従っていなければならない。
設定ファイルが複数に分割されている場合は、すべてのマージが行われた後に 構造規則に従っていればよい。
%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 を使用する。
$uploadsize
が指定されている場合、バックアップの取得に長時間かかる場合 がある。
YAMAMOTO, N. <nym at nym.jp>
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.