FTPでサーバー上の複数のディレクトリ(フォルダ)から対応するローカルディレクトリに一度でダウンロードするスクリプト

コマンドスクリプト集トップへ




概要

複数のディレクトリにある複数のファイルをワンコマンドでダウンロードするスクリプトです。 サーバー上で更新された複数のデータをバックアップ等のためにローカルマシンに一度でダウンロードしたい時に役に立ちます。 コードの説明はこちらにあります。

条件

  1. Perl 5.6が必用です。
  2. PerlのPackage, Net::FTPが必用です。

コマンドの使い方

 getall.pl <username> <password>

第一引数としてFTPのログインusername、第二引数としてpasswordを入れます。

設定

スクリプト内の以下の場所を実際の環境に合わせて変更してください。

 my %db = (
          'site' => "ftp.yoursite.com",
          'root' => "myhome/html",
          'local' => 'd:\www\home\html',
          'items' => [qw(
                         index.html
                         bbs/datafile.dat
                         mydata.log
                         )],
      );

この例では、ftp.yoursite.comサーバーからそれぞれ

 myhome/html/index.html        --->   d:\www\home\html\index.html
 myhome/html/bbs/datafile.dat  --->   d:\www\home\html\bbs\datafile.dat
 myhome/html/mydata.log        --->   d:\www\home\html\mydata.log

のようにファイルがダウンロードされます。

以下に詳細を説明します。

 'site' => "ftp.yoursite.com",

ftp.yoursite.comを接続するFTPサイト名に置き換えてください。

 'root' => "myhome/html",

myhome/htmlをFTPサーバーのホームディレクトリから見た共通のディレクトリに置き換えてください。

 'local' => 'd:\www\home\html',

d:\www\home\htmlをローカルマシン上の共通のディレクトリに置き換えてください。

 'items' => [qw(
         index.html
         bbs/datafile.dat
         mydata.log
         )],

ダウンロードするファイル名を指定してください。

スクリプトダウンロード

以下のリンクのテキストファイルをダウンロードし、名前をgetall.plとしてください。一行目のPerlのパスは適切に変更してください。

getall.pl