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 "" #プロキシを使わないホストはこう記述
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