linuxで再帰的にftp DLするのはwgetでできる

Linux
スポンサーリンク

コマンド

ミラーする。

wget -m ftp://username:password@hostname

-m, –mirror ftpプロトコルで再帰的にデータを取得する際指定のディレクトリ以下に存在するファイル、ディレクトリ全て取得します。ただし、ローカルホスト上の同名のファイルより古い場合は保存しません。

出典

wget -r

でも落とせるけど、5階層までしか辿れないらしい。

ユーザー名やパスワードに@(アットマーク)が含まれる場合

@を

%40にすればいい。

wget -m ftp://user%40name:password@hostname

↑これだと、「ポート番号が不正です。」というエラーが出てダウンロード出来ないことがあった。

  • 原因は恐らくだけど、パスワードに特殊な記号が含まれていたからだと思う

以下のいずれかでやったら回避できる(2個めのパスワードを聞かれるパターンしか試してない)

wget --user=USER@NAME --password=PASSWORD ftp://HOSTNAME

または、

wget --user=USER@NAME --ask-password ftp://HOSTNAME

(パスワードを聞かれる)

再帰的じゃなくて、ファイル単体を個別に1個だけダウンロードしたい場合

wget --user=USER@NAME --ask-password ftp://HOSTNAME/DIRECTORY/FILE.EXTENSION

みたくする。

 

一部のディレクトリを除外したい場合

オプション

--exclude-directories

で指定する。

例)

–exclude-directories=/diretctory1,/directory2

別の記事にもちょっとだけ詳しく書いてる。

その他参考にしたサイトさま

bioinformaticsさん(ありがとうございました!)

コメント