lftp コマンドの mirror で有用なオプション(といくつかの注意点)

lftpコマンド

rsyncが使えない場合の救済手段、lftpコマンドです。

LFTP - sophisticated file transfer program

最強の mirror コマンド

lftpの素晴らしいところはmirrorコマンドというコマンドがあることです。その名のとおり、ミラーリングをしてくれるコマンドです。下記のページで的確にまとまっています。

mirror コマンドでの便利なオプション

mirrorコマンドには便利なオプションがいくつかあります*1

詳しくは以下のページに全文があります*2

LFTP - the manual page

この中で私が便利だなと思ったオプションを紹介します。

--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は最高の選択肢になると思います。

*1:mirror コマンド自体だけではなく、lftp に多くのオプションがあります

*2:man コマンドの結果と同一です

*3:rsync と同様

*4:550 エラーが出ます

Powered by はてなブログ