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

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

   }
  }
 } else {
  $skipped_files++;
 }
}
sub bsToFs {
 my ($s) = @_;
 $s =~ s////gis;
 return $s;
}
sub fsToBs {
 my ($s) = @_;
 $s =~ s////gis;
 return $s;
}
sub timeString {
 my ($tm) = @_;
 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($tm);
 return sprintf("%04d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec);
}
sub shortTimeString {
 my ($tm) = @_;
 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($tm);
 return sprintf("%04d_%02d_%02d_%02d_%02d", $year+1900, $mon+1, $mday, $hour, $min);
}
# input dates as string "YYYY-MM-DD HH:MM:SS".
# earlier as first parameter, later as second.
sub calcDeltaSeconds {
 my ($t1,$t2) = @_;
 my ($year1,$month1,$day1,$hh1,$mm1,$ss1) = scanDate($t1);
 my ($year2,$month2,$day2,$hh2,$mm2,$ss2) = scanDate($t2);
 my ($days, $hours, $minutes, $seconds) = Delta_DHMS(
  $year1, $month1, $day1, $hh1, $mm1, $ss1,     # earlier.
  $year2, $month2, $day2, $hh2, $mm2, $ss2);    # later.
 return $seconds + $minutes*60 + $hours*60*60 + $days*60*60*24.
}
sub removeFilename {
 my ($s) = @_;
 my $pos = rindex($s,'');
 return substr($s, 0, $pos);
}
# format: "2000-09-29 09:09:51".
sub scanDate {
 my ($date) = @_;
 my ($year, $month, $day, $hour, $minute, $seconds);
 $year   = substr($date, 0, 4);
 $month  = substr($date, 5, 2);
 $day   = substr($date, 8, 2);
 $hour   = substr($date, 11, 2);
 $minute  = substr($date, 14, 2);
 $seconds = substr($date, 17, 2);
 return ($year, $month, $day, $hour, $minute, $seconds);
}
sub LOG {
 my ($text) = @_;
 my $time = timeString time;
 # log to stdout.
 print "[$time] $textn";
 # log to logfile.
 my $LOG_STEP = 10;
 flushLogfile() if ($log_cnt % $LOG_STEP)==0 or $log_cnt==0;
 $log_cnt++;
 print HLOG "[$time] $textn";
}
sub openLogfile {
 closeLogfile();
 open(HLOG,">>$logfilename") or die("打开日志文件出错:文件名为 $logfilename ;错误原因为: $!");
};
sub closeLogfile {
 close HLOG if defined HLOG;
}
sub flushLogfile {
 closeLogfile();
 openLogfile();
}
附录:
Upoad.config内容:
## 配置的外部参数 ##
##
[FTPServer]
#- FTP服务器的IP地址 -#
ftp_server   =
#- 指定的FTP上传目录路径 -#
#! 切记:文件夹最后不要加"/"符号 !#
ftp_dir       =
#- FTP的登陆用户名 -#
ftp_uid    =
#- FTP的登陆密码 -#
ftp_pw    =
## 配置的外部参数 ##
##
[SrcDirectory]