FTPサイトをディレクトリごとダウンロードする(wget)

wgetを使っってFTPサイトをディレクトリを一括ダウンロード

あるFTPサイトのバックアップスクリプトを作っていて、FTPサイトをFTPコマンドでダウンロードしようと思ったのですが、FTPコマンドだとディレクトリをまるごとダウンロードするって事ができないのでどうするか悩みましたが、「wget」コマンドを利用するとダウンロードできるようです

$ wget -mc ftp://「ユーザー名」:「パスワード」@「ディレクトリのURL」

# FTPサイトが:www.example.com/public_htmlの場合で
# ユーザ名が ftpuser パスワードが pass1234 の場合は以下となります

$ wget -mc ftp://ftpuser:pass1234@www.example.com/public_html

www.example.com等のドメイン名のディレクトリは不要な場合は、下記のようにすればダウンロードした際に作成されるドメイン名のディレクトリが削除されます
$ wget -mc -nH --cut-dirs=1 ftp://「ユーザー名」:「パスワード」@「ディレクトリのURL」
$ wget -mc -nH  ftp://ftpuser:pass1234@www.example.com/public_html

特定のディレクトリを除外してFTPサイトからダウンロードする

wget を利用するとFTPサイトからディレクトリを一括ダウンロードできるようになりましたが、特定のディレクトリを除外してダウンロードしたい場合は「–exclude-directories」のオプションを指定します。

下記のディレクトリ構成で「/public_html/test/upload/img」が不要な場合は、「–exclude-directories=/public_html/test/upload/img」と指定します

public_html/
 ├ www/
 ├ blog/
 ├ test/
 │ └ upload/
 │   └ img/
 └ tmp/

実際のコマンでは以下のように指定します。–exclude-directoriesのパスの表記ですが、FTPサイトのホスト名からのパスを指定すると、私の環境では除外されダウンロードされました
$ wget -mc -nH --exclude-directories=/public_html/test/upload/img ftp://ftpuser:pass1234@www.example.com/public_html

 

 

スポンサーリンク