リモートバックアップ afio

バックアップについて、gz圧縮するなら tar は危険とのこと(http://www.linux.or.jp/JF/JFdocs/Backup-mini-HOWTO/tar-gz.html)(危険は良い過ぎか、少し心許ない位いか) afio を使う。afio はアーカイブ先を必ず指定する。それで標準出力にするのちょっと探してしまった。

Special-case archive names:

o Specify - to read or write the standard input or output, respectively.
This disables multi-volume archive handling.

「-」を書けば良いのね。
バックアップを呼ぶ側は OSX Leopord、afio入ってないけどそれは大丈夫。

35 12 * * * ruby -e '`ssh -i /Users/<ユーザ名>/.ssh/<キーファイル名> <リモート機名> "find /home/<対象ディレクトリ> | afio -oZ -" > /Volumes/<ディレクトリ名>/<ファイル名>.#{Time.now.strftime  "%Y-%m-%dT%H-%M-%S"}.afz`'

こんな感じで。
ちょっと無理して一行に収めた。「''」と「""」を逆にすると動かなかった、cron実行時のシェルで大丈夫かな。ssh はコマンド文字列を与えると、リモートで実行して標準出力をこっちに返してくれる。それで afioのアーカイブ出力を標準出力にしたかった。これでリモート側に一時ファイルとか作らないで済む。
OSX側には afio 入ってないけど cpio は入ってるし、出来上がったアーカーブファイルを fileコマンドで見てやると「 ASCII cpio archive (pre-SVR4 or odc)」とか言ってる。