rsync_backup.rb

Path: rsync_backup.rb
Last Update: Tue Jun 14 20:44:12 JST 2005

RsyncBackup

 Developers:: Morikawa Yasuhiro
 Version::    2005/06/14 20:04:41

Overview

ローカルのファイルを rsync で他のサーバ (ローカルでも良い) へ転送する ためのクラス。初期化 (RsyncBackup.new)の 際に転送元と転送先の「基」と なるディレクトリとホストを指定する。そのまま RsyncBackup.run メソッド を実行すればそのディレクトリをそのまま rsync するが、RsyncBackup.partly の引数 *dir にディレクトリ名を渡すことで、その部分だけを rsync すること が可能である。

その他、様々なメソッドを利用することで、rsync に有効なオプションの 指定が可能である。

ソース一番下の Main Routine の部分にサンプルが用意してある。

Usage

     % rsync_backup.rb [options] [dir [dir ...]]

Options

   --n                : for test (not exec "rsync")
   --check            : for test (exec "rsync" with "-n" option)
   --delete           : add "--delete" option
   --nodelete         : remove "--delete" option
   --logauto          : log to appropriate logfile
   --log <logfile>    : output rsync command messages to <logfile>

Error Handling

Known Bugs

  • 今のところ、特に無し

Future Plans

  • 日本語ファイル名を rsync のパスとして用いる場合には未対応
  • パスワードは毎回入力するようになっている。RsyncBackup.partly で複数のディレクトリ を指定する場合には面倒かもしれない。

Note

サンプルとして実行部分もあるが、基本的にはライブラリとしての利用を 想定している。

History

  • 2005/06/14 20:04:41
    • ユーザ名指定用のメソッド RsyncBackup.username を作成.
    • pathname.rb さえ持ってこれば ruby1.6 でも動くよう, String.new を "" に変更する.
  • 2005/06/14 15:39:56
    • インスタンス変数のいくつかにコメントを追加
  • 2005/03/21 18:17:29
    • rdoc 用にコメントの形式を改訂
  • 2005/03/21 02:11:26
    • オブジェクトが String で、且つ空白でない事を調べるための RsyncBackup.str_and_notspace? メソッド作成
    • オブジェクトが Array で、且つゼロ配列でない事を調べるための RsyncBackup.array_and_notzero? メソッド作成
    • RsyncBackup.new メソッドで、srcdir または dstdir が String でないか、 空文字の場合のエラーの種類を ArgumentError にするようにした。
    • RsyncBackup.new メソッドで、srchost と dsthost の両方が有効で ある場合にはエラーを返すようにした。(rsync ではリモートから リモートへの転送をサポートしていないので)
    • RsyncBackup.excludeopt メソッドを上記の RsyncBackup.str_and_notspace? メソッドと RsyncBackup.array_and_notzero? を利用して簡単に記載。
    • RsyncBackup.partly メソッドを改良し、リモート→ローカル も ローカル→リモートの際も両方ともまっとうに動作するようにした。
  • 2005/03/21 01:23:23
    • RsyncBackup.excludeopt メソッドをバグフィックスし、まともに 動くようにした。(カレントディレクトリは関係なく、rsync の src が関係あったので)。 その際、操作の大半を partly メソッドに移行。
  • 2005/03/20 00:27:10
    • RsyncBackup.excludeopt メソッドを改良し、カレントディレクトリから判定し、 rsync にとって有効な文字列に整形するようにした。
    • RsyncBackup.partly に文字列を与えた際、スラッシュが2重に付くバグを修正。
  • 2005/03/13 03:23:56
  • 2005/03/12 12:24:35
  • 2005/03/07 03:56:35
    • 一度構造を見直して作り変えた
  • 2005/03/06 Morikawa Create

Required files

pathname   getoptlong  

[Validate]