Я использую Perl-скрипт.В моем Perl-скрипте я проверяю текущую дату и имя папки (которая также находится в формате даты, например, 11-12-07).Этот Perl-скрипт запускается автоматически, когда проверяет текущую дату по имени папки.Папка - это папка tar, которая загружается с другого сервера.
Итак, мне нужно запустить скрипт, если он совпадает с именем папки и текущей датой.
Проблема: иногда я получал папку на следующий день, и мой Perl-скрипт проверял только текущую дату.Папка, которую я получаю, имеет имя, которое является предыдущей датой (не текущей датой). Итак, мне нужно сделать обработку папки вручную.Мне нужно автоматизировать это в моем Perl-скрипте.
Пожалуйста, предложите мне несколько идей, чтобы это произошло.
Спасибо !!
Код для ссылки:
my $tfilename = 'tarmd5.tar';
my $td = `date '+%y-%m-%d'`; # date in yy-mm-dd format
chomp ($td);
my $td2 = `date '+%Y%m%d'`; # date in yyyymmdd format
chomp ($td2);
#
# get directory from command line
$dir = shift;
leave("'$dir' is not a valid directory") unless (-d $dir);
if ($dir eq '.') {$dir = cwd();}
elsif ($dir !~ /^\//) {$dir = cwd()."/$dir";}
# print out the time
print scalar(localtime()),"\n";
######## This section unpacks transferred data ########
# go to directory for today and find *tar.gz files to copy
my $dday = "$dir/$td";
next unless (-d "$dday");
@gzfiles = glob("$dday/*tar.gz");
foreach $zf(@gzfiles) {
next if (($zf =~ /BMP/) || ($zf =~ /LG/) || ($zf =~ /MAP/) || ($zf =~ /STR/));
print "$zf\n";
($status,$message) = systemcall("/bin/cp $zf $fdir");
}