lftpの覚書

ssh経由で自宅サーバを操作し、外部のFTPサーバからファイルをダウンロードする事が多いです。自宅サーバは UTF-8 な Debian の為、相手のFTPサーバがWindows環境(ShiftJIS)だとキャラクタセットの差異が問題となってきます。

そこで、lftp では以下のようにすると、キャラクタセットを正しく変換し、操作する事が出来ます。

$ lftp
lftp :~> set ftp:charset Shift_JIS
lftp :~> open ftp.example.com
lftp :~> user dyama
パスワード:
lftp dyama@ftp.example.com:/>

ファイルを取得する際によく使うコマンドは、

lftp dyama@ftp.example.com:~> help mget
使い方: mget [OPTS] <files>
ワイルドカード展開によって選択された複数のファイルを取得します
-c  継続してダウンロード、reget と同じ
-d  ファイル名と同じ名前のディレクトリを作成して、
    取得したファイルを現在のディレクトリではなくそこに送る
-E  転送が成功したらリモートファイルを削除する
-a  アスキーモードを使う (デフォルトではバイナリ)
-O <base> ファイルが置かれるベースディレクトリか URL を指定する

また、大量のファイルを取得する際には queue コマンドにてキューとして追加すれば便利。

# ↓ダウンロードキューに追加
lftp dyama@ftp.example.com:~> queue get "ほげほげ.mp4"
# ↓キューを確認
lftp dyama@ftp.example.com:~> queue
ftp://dyama@ftp.example.com/現在実行中: [1] get ほげほげ.mp4

また、ローカルに対してコマンドを発行したい場合は、

lftp dyama@ftp.example.com:~> !ls
lftp dyama@ftp.example.com:~> !pwd

のように、コマンドの頭に”!”を付けます。

投稿者:

dyama

佐世保のシステムエンジニアです。詳しいプロフィールやこのブログについてはこちらをご覧ください。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください