FTPで一つのファイルを複数のディレクトリ(フォルダ)に一度でアップロードするスクリプト

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




概要

一つのファイルをFTPサーバーの複数のディレクトリにワンコマンドでアップロードするスクリプトです。 複数の場所で使われている同一CGI等をバージョンアップなどで更新したいときにワンコマンドで全てのディレクトリにアップロードすることができます。 コードの説明はこちらにあります。

条件

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

コマンドの使い方

 putall.pl <filename> <username> <password>

アップロードしたいファイルがあるローカルディレクトリでputall.plを実行します。第一引数としてアップロードするファイル名、第二引数としてFTPのログインusername、第三引数としてpasswordを入れます。アップロードするファイル名にパスは含まないようにしてください。

設定

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

 my %db = (
         'site' => "ftp.yoursite.com",
         'root' => "subdir/cgi-bin",
         'subdir' => [qw(
                        dir1
                        dir2
                        dir3
                        dir4
                        dir5
                        )],
         );

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

  subdir/cgi-bin/dir1
  subdir/cgi-bin/dir2
  subdir/cgi-bin/dir3
  subdir/cgi-bin/dir4
  subdir/cgi-bin/dir5

に引数で渡したファイルがputされることになります。

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

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

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

 'root' => "subdir/cgi-bin",

subdir/cgi-binをFTPサイトのホームディレクトリから見たターゲットディレクトリの共通部分に置き換えてください。

 'subdir' => [qw(
                dir1
                dir2
                dir3
                dir4
                dir5
                )],

dir1 .. dir5の部分をrootで指定したディレクトリ以下の個別のサブディレクトリに置き換えてください。必用な数だけ記述できます。

スクリプトダウンロード

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

putall.pl