75 lines
1.7 KiB
Perl
75 lines
1.7 KiB
Perl
#!/usr/bin/perl -I ../lib #-w
|
|
|
|
BEGIN{
|
|
my $dir='';
|
|
$ENV{SCRIPT_FILENAME} if ($dir eq'');
|
|
$dir=~s/(.*\/)[^\/]+/$1/;
|
|
$dir=$ENV{PWD} if ($dir eq'');
|
|
$dir=`pwd` if ($dir eq'');
|
|
|
|
#local perl installation libs
|
|
unshift(@INC,$dir.'/../../perl/lib/');
|
|
|
|
#calcms libs + configuration
|
|
unshift(@INC,$dir.'/../calcms/');
|
|
}
|
|
|
|
#use utf8;
|
|
use warnings "all";
|
|
use strict;
|
|
use Data::Dumper;
|
|
|
|
#use CGI;
|
|
#use HTML::Template;
|
|
use Date::Calc;
|
|
#use calendar;
|
|
#use time;
|
|
#use log;
|
|
|
|
if(@ARGV<2){
|
|
print qq{ERROR: $0 yyyy-mm-dd yyyy-mm-dd
|
|
syncronize from given start date to end date, day by day
|
|
};
|
|
exit 1;
|
|
}
|
|
|
|
my $start =$ARGV[0];
|
|
my $end =$ARGV[1];
|
|
|
|
(my $start_year,my $start_month,my $start_day)=split(/\-/,$start);
|
|
my $last_day=Date::Calc::Days_in_Month($start_year,$start_month);
|
|
$start_day = 1 if ($start_day<1);
|
|
$start_day = $last_day if ($start_day gt $last_day);
|
|
|
|
(my $end_year,my $end_month,my $end_day)=split(/\-/,$end);
|
|
$last_day=Date::Calc::Days_in_Month($end_year,$end_month);
|
|
$end_day = 1 if ($end_day<1);
|
|
$end_day = $last_day if ($end_day gt $last_day);
|
|
|
|
|
|
|
|
for my $year($start_year..$end_year){
|
|
my $m1=1;
|
|
my $m2=12;
|
|
$m1=$start_month if($year eq $start_year);
|
|
$m2=$end_month if($year eq $end_year);
|
|
|
|
for my $month($m1..$m2){
|
|
$month='0'.$month if (length($month)==1);
|
|
my $d1=1;
|
|
my $d2=Date::Calc::Days_in_Month($year,$month);
|
|
$d1=$start_day if($month eq $start_month);
|
|
$d2=$end_day if($month eq $end_month);
|
|
|
|
for my $day($d1..$d2){
|
|
$day='0'.$day if (length($day)==1);
|
|
my $date=join('-',($year,$month,$day));
|
|
my $cmd="perl sync_cms.pl --update --all --source config/source/program.cfg --target config/target/calcms.cfg --from ".$date."T00:00:00 --till ".$date."T23:59:59";
|
|
#print "$cmd\n";
|
|
print `nice -n 10 $cmd`;
|
|
}
|
|
}
|
|
|
|
}
|
|
|