ftpで再帰的にファイル取得 / wget編

「wget編」と書きましたが、これが恐らくいちばん便利なので、他のはないかと思います・・・

サーバを移設するに当たり、大量のWebデータなどをどうしようかと悩んでいました。

圧縮して転送・・・を繰り返していたのですが、一部には大容量のデータが置かれている模様。
圧縮だけで数十分が経過しますし、そういうデータの多くは圧縮しても容量が変わりません。

かといって、SCPが簡単に使える環境でもなく(鍵認証+パスワードなのです)、たどり着いたのがこの方法です。

wgetでftpが使えることを知らなかった私。
今更ながらコマンドを見直してみました。
私がやりたいことは、旧サーバのデータを新サーバに移動したい。但し、フォルダ構成・パーミッションはそのままで、というもの。

この場合、

wget -mckb –passive-ftp –preserve-permissions ftp://旧サーバのユーザ名:パスワード@旧サーバのIPアドレス/転送したいフォルダ名

となります。
ちなみにこの場合のオプションは

m : ミラーリングに適したオプションで動作
 ミラーリングに適したオプションとは
  -r : 再帰的に転送します
  -N : ローカルより古いファイルは転送しない
  -l : ( Lの小文字) 再帰する深さを指定(この場合は無制限)
c : 既にあるファイルの続きから転送を行う
k : 非相対リンクを相対リンクに変換
b : バックグラウンドで実行します

バックグラウンドで実行する、を指定すると、実行したディレクトリ上に”wget-log”というファイルを作成し、このファイル内に進捗を書き込んでいきます。

これを使えば、ディレクトリのミラーリングなどは簡単にcron化出来そうです。

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Webサイトのこと、WordPressのこと、何でもお問い合わせ下さい