« SCP | Main | Bashでファイル転送処理─その2 »

March 07, 2007

Bashでファイル転送処理

このところ業務ではファイル転送スクリプトのことばかり考えている。ディレクトリ構造に収まっているファイルを一括で転送するには、通常のftpコマンドではちょっと役不足だ。しかし環境の制約があって、使いたい機能を好きなようにインストールすることは出来ない。仕方がないので、ftpでファイルリストを取ってきて、それをもとにディレクトリ構造を把握し、すべての階層からすべてのファイルをゲットするスクリプトを書いた。これはncftpならコマンド一発で出来てしまうものである。

最初は暢気にftpを何度でも起動して、順番にディレクトリを調べていけば出来るだろうと思っていたのだが、Bashスクリプトの中からftpをガンガン起動していくと、30個弱くらいで止まってしまう。サーバがコネクションを拒否してしまうのだ。netstatコマンドで見ると、使用したコネクションがTIME_WAITで残ってしまっている。きっとサーバがデータを転送し終わる前にクライアント側からbyeしてしまうからだと思われるが、 ftpをバッチモードで使用するのにデータをすべて受信してから終了するなんて出来るんだろうか・・・これは実際に監視系システムで使用する予定の処理なので、あんまりいい加減な方法では運用で問題が発生してしまう。

一応、それらしいキーワードで検索してみたが、ftpの自動処理でそこまで気にしている情報は無かった。

まあ、これは明日検証してみることにする。

|

« SCP | Main | Bashでファイル転送処理─その2 »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/14232658

Listed below are links to weblogs that reference Bashでファイル転送処理:

« SCP | Main | Bashでファイル転送処理─その2 »