lftpコマンド
rsync
が使えない場合の救済手段、lftp
コマンドです。
LFTP - sophisticated file transfer program
最強の mirror コマンド
lftp
の素晴らしいところはmirror
コマンドというコマンドがあることです。その名のとおり、ミラーリングをしてくれるコマンドです。下記のページで的確にまとまっています。
mirror コマンドでの便利なオプション
mirror
コマンドには便利なオプションがいくつかあります*1。
詳しくは以下のページに全文があります*2。
この中で私が便利だなと思ったオプションを紹介します。
--delete
(ハイフンは2つ)
- リモートサイトに存在しないファイルは、ローカルサイトで削除します
- つまり完全同期になります
-R
- ローカルのファイルをリモートにミラーします
- このオプションを付与しない場合(デフォルトの場合)は、リモートからローカルへのミラーです
- デプロイ時などに有効かと思いますが、実行される内容を考えると、利用には細心の注意が必要かと思います
--parallel=N
(ハイフンは2つ)
- 複数のファイルの操作を同時に行ってくれます
- 同時に行う数はNの値で決まります
--dry-run=FILENAME
(ハイフンは2つ)
- ダウンロードやアップロードの操作は実際に行わず、行ったと仮定した操作が行われます
- ログファイルが
FILENAME
に書き出されます
--log=FILENAME
(ハイフンは2つ)
mirror
コマンドを実行したログをFILENAME
に書き出します
細かい注意点
mirror
で対象場所を指定する際はフルパスで書きましょう。また、ディレクトリを指定する際に、最後を/
で閉じるか否かは明確な区別がありますのでこれも注意です*3。
あとmirror
コマンドではミラー対象としてファイルそのものは指定できませんのでこれまた注意です*4。
FTP 縛りがある場合は lftp で
Yahoo!ジオシティーズ などはその経緯からか、未だに FTP だけという縛りがあります。そのような場合にlftp
は最高の選択肢になると思います。