RSS

Perl FTP

22 11月

ShowFiles.pl

#
#  ShowFiles.pl : 指定したリモートディレクトリ内のファイル一覧を表示する
#    (ex) perl ShowFiles /public_html
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 0) {
 die "Usage: perl GetFiles.pl <Remote file> <Local directory>";
}

my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# ファイル一覧を取得する
my @files = $ftp->ls($ARGV[0]);

# 接続を終了する
$ftp->quit;

# ファイル一覧を表示する
foreach (@files)
{
 print "$_\n";
}

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}

GetFiles.pl

#
#  GetFile.pl : 指定したファイルをダウンロードする。
#   (ex) perl GetFile.pl /public_html/index.html .
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 1) {
 die "Usage: perl GetFile.pl <Remote file> <Local directory>";
}

# アドレス、ユーザID、パスワードをファイルftpconf.txtから読み取る
my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# 必要なら下のどちらかをコメントアウトすること
#$ftp->ascii;
#$ftp->binary;

# ファイルを取得する
my $remote_file = $ARGV[0];
my $local_dir = $ARGV[1];
chdir($local_dir);
$ftp->get($remote_file);

# 接続を終了する
$ftp->quit;

printf("Done.\n");

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}

PutFiles.pl

#
#  PutFile.pl : 指定したファイルをアップロードする。
#   (ex) perl PutFile.pl index.html /public_html
#

use strict;

# モジュールの読み込み
use Net::FTP;

# パラメータ指定がなければエラーとする
if ($#ARGV < 1) {
 die "Usage: perl PutFile.pl <Local file> <Remote directory>";
}

# アドレス、ユーザID、パスワードをファイルftpconf.txtから読み取る
my ($addr, $userid, $password) = readconf('ftpconf.txt') or die('Error: config file not found.');

# FTPサーバへの接続(ホスト名でもIPアドレスでもOK)
my $ftp = Net::FTP->new($addr) or die('Error: Net::FTP->new');

# ユーザ名とパスワードを指定してログイン
$ftp->login($userid, $password);

# 必要なら下のどちらかをコメントアウトすること
#$ftp->ascii;
#$ftp->binary;

# ファイルを転送する
my $local_file = $ARGV[0];
my $remote_dir = $ARGV[1];
$ftp->cwd($remote_dir);
$ftp->put($local_file);

# 接続を終了する
$ftp->quit;

printf("Done.\n");

#
#  アドレスとユーザID、パスワードをファイルから読み込む
#   ファイル内容はカンマ区切りテキスト1行とする。
#       address,userid,password
#
sub readconf
{
 my $filename = shift;

 # ファイルを開く
 open(my $fh, $filename);

 # 1行読む。
 $_ = <$fh>;

 # カンマ区切りテキストとして要素に分割
 my @a = split(/,/);

 # ファイルを閉じる
 close($fh);

 return @a;
}
 
コメントする

投稿者: : 2010/11/22 投稿先 Perl

 

タグ:

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中