比例道
| フロントページ | 新着 | 一覧 |

ftpmirrorはperl5.8.8で使えない

ftpmirror使用不可能

ftpmirrorはインテックの中川郁夫氏が作成したミラーリング(バックアップ)ツールだ.perlで記述されている.最終版は1.96だ.2.0を開発中とドキュメントにはあるが,発表はされなかった.ftpmirrorはperl 5.004以上を要求するが,perl 5.8.8では動かない.perl 5.8.6までは動く.perl 5.8.8で動かすためのパッチを当てたftpmirror-1.96_3がvine linuxのパッケージとして提供されたが,最新のvineではそれもない.
バックアップマシンをニューマシンに更新したときにOSをCentOS5.5の最新版にしたのだが,これに付いてくるperlが5.8.8だったため,ftpmirrorが動かなくなった.パッチを当てたftpmirror-1.96_3をいくつか拾ってきたが,なぜか落ちているのはmach用とamd64用ばかりでi386用は見つけられなかった.しかもソースは落ちておらず,見つかったのはバイナリばかり.結局ftpmirrorの使用は諦め,別のツールを使うことにした.

lftpの利用

別のツールの候補はいくつかあったが,オーソドックスなlftpを使用した.以下のようなコマンドファイルを作っておけばlftp -f コマンドファイルでミラーリング(ホスト->ローカル)が可能だ.

 open -u ユーザ名,パスワード ホスト名
 mirror --delete --only-newer remotedir localdir
 close
 quit

ローカルからホストにアップロードしたい場合はmirrorの行を以下のように変える

 mirror --reverse --delete --only-newer localdir remotedir


プロキシの利用

ftpプロキシを利用する場合は/etc/lftp.confに以下の内容を記述

 set ftp:proxy ftp://proxyserver:port
 set ftp:proxy/noproxyhost "" #プロキシを使わないホストはこう記述


ドットファイル

ドットファイル(.xxx形式のファイルやディレクトリ)も対象にする場合は/etc/lftp.confに以下の内容を記述

 set ftp:list-options -a


sitecopyでのsftpの利用

最近はセキュリティ上の理由でftpプロトコルをサポートしないサーバーもある.私の使っているサーバーの一部もそうだ.そのような場合はsitecopyの新しいものを使うとssh/scp/sftpが使える.manページにはこれらの使い方はまだ書かれていないので,ネットで探し回って使い方を見つけた.結局設定ファイルのftpをsftpに書き換えるだけだったが.

 .sitecopyrcの内容
 site mysite
  server   mysite.midomain
  username myname
  password mypassphrase
  protocol sftp
  romote   remotedir
  local    localdir


リモートからローカルへは

 sitecopy -s mysite


ローカルからリモートへは

 sitecopy -u mysite