Posts tagged ‘lftp’

FTPでミラーリング

数百GBのデータを管理したいのですが、管理したいデータはFTPで公開されている配布元のデータ。
これが更新されたり追加されたりしたら、これを検知してその情報を管理アプリケーション側のデータベースに登録したい感じのことをやりたいのです。

配布元(FTP) > - <  ( Internet ) > - < 管理アプリケーション <- 管理者

数が少なければ、配布元にFTPアクセスして管理アプリケーションで持っている情報と突合せして、
新しかったり、管理アプリケーションに持っていないデータであれば、それを追加すれば良いかもしれないのですが、
多くなると配布元へのFTPアクセス負荷が増えそうだし、その配布データ自体は上記で言う管理アプリケーション側で
また別のところに配信するために保持しておかないといけない。
それを、増えた減ったのタイミングでダウンロードさせるのも面倒な処理になるなぁと思っていました。

なので、FTPでミラーリングみたいなことが出来れば、後はローカル(管理アプリケーション側)だけで処理出来るので
何かいいのないかな。と思って探していたら、「lftp」と言うLinux用のFTPクライアントを見つけました。

LFTP – sophisticated file transfer program
lftp を使った ftp ミラーリングと便利機能

このlftpは、標準的なツールのようで、すでにCentOS5.3でも使えるようになっているようでした。
すごそうなのは、

# mirror

の一発で簡単にミラーリング(配布元のファイルをローカルにダウンロード)出来るとこです。
これをcron登録しておきて定期的にミラーリングしておけば、わざわざFTP元まで見に行く必要がない。

基本的な使い方は以下です。
(と言うか、これしかまだやってない。)

# lftp -u (FTPユーザー名),(パスワード) 接続先
lftp :~&gt;set ftp:charset cp932
lftp :~&gt;mirror

上記でset ftp:charset cp932とやっているのは、おそらく配布元がWindowsサーバーかなんかで、ファイルがSJISになっていて普通にlsしたら化けていたので文字セットを変えてみたものです。
それはそれで、ログインして単に「mirror」すれば良いだけというのは簡単だ!
しかし一度目は時間かかるのはしょうがないとしても、二度目以降はどうなんだろうか?