- - PR -
rsyncを使ったサーバ間の同期について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-10-30 09:16
お世話になります。
こちらの会議室では初めて質問します。 サーバAとサーバBの2サーバ間のファイルの 同期を考えています。 サーバAとサーバBの接続はルータを介して行います。 具体な処理内容は、 クライアントからサーバAに対してFTPでファイルをアップロードし 定期的(cronを利用)にサーバAのデータをサーバBにアップロード。 その際、サーバAで消去されたファイルについては、サーバBでも 同じように消去するといった処理を行いたいのです。 ただし条件としてルータで開けることができるポートが 80番と21番のみです。 ファイルの同期方法として調べてみたところ rsyncという便利なコマンドがあることがわかったのですが これを利用するためには、873番ポートが空いていなければいけない ということもわかり、結局、ふりだしに戻ってしまいました。 そこで質問なのですが、HTTP(80)とFTP(21)を利用して 2サーバ間のファイルの同期をとる方法がありましたら なにとぞ、ご教示いただけませんでしょうか? よろしくお願いします。 | ||||
|
投稿日時: 2005-10-30 10:26
こんにちわ.
同期は無理なんじゃなかろうかと. A->B という一方向なら,A で ftp/http service を動かしておいて, B 側で wget させれば「増分」までなら実現できるかもしれません. ※Windows の GUI な ftp client で ※"mirroring download" できるものもありますから, ※あるいはできるものがあるのかもしれませんが... 一点だけ気になります. ftp は 21/tcp だけでは機能しません. command 用の session の他に data transfer 用の session も必要です. data 用については passive/active によって session を張る方向が違います. 条件から推測するに,途中に firewall でもあるのでしょうから, 「21 port しか開いていない」なら ftp は使えないことになります. それなりな firewall ならその辺は考慮されていますが, 単に「21 port しか開いていない」のではマズイということは 意識しておいたほうがよろしいかと思われます. 以上,ご参考までに. | ||||
|
投稿日時: 2005-10-30 11:03
レスありがとうございます。
そうですか。やはり無理ですか。 教えていただいたFTPを利用する方法を 試してみます。 ありがとうございました。 FTPは私の書き方がおかしかっただけで 利用可能なポートはFireWallであけてあるみたいです。 | ||||
|
投稿日時: 2005-10-30 11:05
HTTPや、FTPのサービスを必要としないのであれば rsyncのデーモンがlistenするポートを873から80か、21かに 変更するっていう手が一つ。起動オプションでポートは指定出来ます。 もしくは、daemonモードを利用しないでsshあたりを利用したrsyncで sshdのlistenポートを80とか、21にするとか。 ま、似たようなもんですが。 あとは、lftpみたいなコマンド使ってミラーリングするとか。 http://sonic64.com/2004-05-08.html | ||||
|
投稿日時: 2005-11-01 16:08
anightsさん、レスありがとうございました。
rsyncが可能なのであればFTPサービスは必要ありません。 もともとコンテンツ更新用としてFTPサービスを考えていたので。 ポートを変更してもrsyncが利用可能だとは思いませんでした。 再度、rsyncでの運用を検討してみたいと思います。 | ||||
|
投稿日時: 2005-11-02 16:18
本来 ssh で通信できる rsync がいいのですが、
どうしても ftp しか使えないなら ftpmirror というソフトがあるみたいですよ。 ftp mirror をキーワードにすれば ほかにも探せばいろいろありそうです。 あ、たぶん mirror という Perl のスクリプトの方が 有名ですね。ftpmirror より高機能っぽいです。 [ メッセージ編集済み 編集者: おっきー 編集日時 2005-11-02 16:24 ] |
1