用Perl写的自动上传整个目录的程序

三年以前(抄)写的东西吧,今天要用,所以找了出来。
放在这儿备用。

#!/usr/bin/perl -w

use Net::FTP;
use strict;

my $server='xxx.xxx.xxx.xxx';
my $user='foo';
my $pw='bar';
my $rdir='/to';

my $ftp = Net::FTP->new($server);
$ftp->login($user,$pw) || die "Login failed";

$ftp->mkdir($rdir,1);

$ftp->cwd($rdir)|| die print "$rdir doesn't seem to exist on $server./n";

my $remote_start_dir = $ftp->pwd();

my $local_start_dir = '/from';
# my $local_start_dir = $ENV{PWD};

handle_dir($local_start_dir, $remote_start_dir);

sub handle_dir()
{
 my $local=$_[0];
 my $remote=$_[1];
 opendir (DIR, $local) || die "huh? $!";
 $ftp->mkdir($remote,1) || die "can't make $remote on $server/n";
 my @subdirs;
 my @all_files = grep !/^/./.?$/, readdir DIR;
 foreach(@all_files)
 {
  if (-d $local . "/" . $_)
  {
   push @subdirs, $_;
  }
  else
  {
   $ftp->put($local . "/" . $_, $remote . "/" . $_)|| die "$!";
  }
 }

 foreach (@subdirs)
 {
  handle_dir($local . "/" .$_, $remote . "/" . $_);
 }
}

$ftp->quit;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值