FTP自动上传文件的perl脚本以及配置文件

2019-10-01 15:16:49王冬梅

$ftp = Net::FTP->new($ftp_server);
if($@)
{
 $g_strLastError = "不能连接到FTP服务器,错误原因:".$@;
 LOG("$g_strLastError@n");
 $g_nUploadSuccess = -1;
}
else
{
 $ftp->login($ftp_uid, $ftp_pw);
 if($@)
 {
  $g_strLastError = "不能登陆FTP服务器,错误原因:".$@;
  LOG("$g_strLastErrorn");
  $g_nUploadSuccess = -1;
 }
 else
 {
  $ftp->binary;
  LOG("链接FTP服务器成功!");
##---------------------------#
##---------------------------#
##=== 程序执行的第二步,将指定A类文件夹下所有A类文件上传到FTP站点指定目录下 ===##
  my %lookup;
  LOG("准备上传“A类文件”目录(@src_dir_WAVFiles)下的所有文件!");
  find(&processFiles, @src_dir_WAVFiles);
  LOG("目录(@src_dir_WAVFiles)已经处理完毕,结果是:");
##---------------------------#
##=== 程序执行的第三步,将指定B类文件夹下B类文件上传到FTP站点指定目录下 ===##
  if($g_nIsAllWAVsFile_UploadSuccess > 0)
  {
   LOG("+===============================+");
   LOG("准备上传B类目录(@src_dir_NamesListFile)下的所有文件!");
   find(&processFiles, @src_dir_NamesListFile);
   LOG("目录(@src_dir_NamesListFile)已经处理完毕,结果是:");
   LOG("-===============================-");
  }
  else
  {
   LOG("-===============================-");
   LOG("由于A类文件目录并没有完全上传,所以本B类文件不上传!");
   LOG("-===============================-");
  }
##---------------------------#
##---------------------------#
# 日志文件的最后是一个统计报告
  $span = calcDeltaSeconds($start_date,timeString(time));
  LOG("上传结果:成功。n花费:$span 秒, 总共处理了 $total_files 个文件, 其中 $processed_files 上传成功, 跳过了 $skipped_files 个文件。");
  $ftp->quit()         or warn "unable to quit: $@n";
 }
 closeLogfile();
}
##---------------------------#
##---------------------------#
##=== 程序执行的第四步,写成功日志 ===============================##
if($g_nIsAllWAVsFile_UploadSuccess > 0 && $g_nUploadSuccess > 0)
{
 $logfilename = 'Upload_Succ_'.shortTimeString(time).'.log';
 $log_cnt = 0;
 LOG("");
 LOG("FTP自动上传文件 Version 0.1");
 LOG("");
 LOG("上传结果:成功。n花费:$span 秒, 总共处理了 $total_files 个文件, 其中 $processed_files 上传成功, 跳过了 $skipped_files 个文件。");
 LOG("");
 closeLogfile();
}
##---------------------------#
##---------------------------#
##=== 程序执行的第四步,写失败日志 ===============================##