Skip to content

Commit

Permalink
Script.pl adaptés au nouveau format
Browse files Browse the repository at this point in the history
  • Loading branch information
plegay committed Sep 15, 2020
1 parent 31fe42c commit f16c6c9
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 42 deletions.
7 changes: 4 additions & 3 deletions script/liste_boursiers.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/bin/bash

PROG=/home/esco/load_liste_boursiers.pl
REP=/home/esco/logs
Expand All @@ -6,11 +7,11 @@ FILE=load_liste_boursiers

LOG=$REP/${FILE}.log

echo " " > $LOG
echo " ------ $PROG ------ " >> $LOG
echo " ------ $PROG ------ " > $LOG

$PROG >> $LOG 2>&1

cat $LOG
/bin/cat $LOG

/bin/cat $LOG >> $REP/${FILE}_$(date +%m).log

Expand Down
76 changes: 37 additions & 39 deletions script/load_liste_boursiers.pl
Original file line number Diff line number Diff line change
Expand Up @@ -27,41 +27,41 @@
my $sftp = "/usr/bin/sftp -b- $adr_ftp";

#la commande scp
sub scp {
sub scp(){
my $addr = shift;

my $com = "scp $tmpFile ${addr}:$rep_conf_portail";
printLog("$com");
&printLog("$com");
system "$com" || die "scp error: $!";
}

#la commande curl
sub curl {
sub curl(){
my $addr = shift;

my $result = -1;

my $com = sprintf ($curl_format, $addr);
printLog("$com");
open COM, "$com 2> /tmp/curl.error |" or die $!;
&printLog("$com");
open COM, "$com 2> /tmp/curl.error && echo |" or die $!;
$line = <COM>;
print $line, "\n";
if ($line =~ /(\d+),(\d+)/){
$result = int($1) + int($2);
$result = $1;
}
close COM;
open ERROR, "/tmp/curl.error";
while (<ERROR>) {
print ;
}
close ERROR;
printLog( "$result boursiers ont été chargés");
&printLog( "$result boursiers ont été chargés");
return $result;
}


# print daté
sub printLog {
sub printLog(){

my @localTime = localtime time;
my $horodatage = sprintf(
Expand All @@ -78,42 +78,41 @@ sub printLog {
}

#Le controle de la taille du fichier copier:
sub testSize {
sub testSize(){
my $addr = shift;
my $sizeOk = shift;

my $com = "ssh $addr 'ls -l ${rep_conf_portail}${fileName}'";
open COM, "$com |" or die $!;
if ( size(<COM>) != $sizeOk ){
if ( &size(<COM>) != $sizeOk ){
die "Erreur de copie sur $addr!\n";
}
printLog("copie Ok");
&printLog("copie Ok");
close COM;
}

# recuperation de la taille d'un fichier a partir d'une ligne donnée par ls -l
sub size {
sub size(){
my $line = shift;
my @col = split ('\s+', $line);

return $col[4];
}

# verification du fichier dans tmp renvoie le nombre de ligne de boursier;
sub verifFile {
sub verifFile(){
open FILE, "$tmpFile" or die $!;

my $cpt = 0;
{
local $_ = <FILE>;
die "ERREUR d'entête : $_" unless /^\"id\";\"ine\";\"echelon\"/;
}
$_ = <FILE>;
die "ERREUR d'entête : $_" unless /^\"ine\";\"echelon\"/;
while (<FILE>) {
chomp;
if ($_) {
my @col = split('";"', $_);
$cpt ++;
die "ERREUR mauvais format de ligne ($cpt) : $_\n " unless $col[2] =~ /^\d+$/;
# print "$_>" . $col[0]. "<>" . $col[1] . "<\n";
die "ERREUR mauvais format de ligne ($cpt) : $_; \n " unless $col[1] =~ /^\d+\"/;
}
}
close FILE;
Expand All @@ -123,10 +122,10 @@ sub verifFile {


#on ouvre la connexion sftp
printLog("$sftp");
&printLog("$sftp");
open2 (READ, WRITE, $sftp ) or die "erreur connexion sftp: $!\n";

printLog("\t connexion ok");
&printLog("\t connexion ok");

#on recupere une ligne vide pour le prompt
print WRITE "\n";
Expand All @@ -143,14 +142,14 @@ sub verifFile {
print WRITE "ls -l ${prefixeFile}_*.csv\n\n";

$_=<READ>;
printLog($_);
&printLog($_);

while (<READ>) {
last if /^$prompt$/;
print($_);
if (/(${prefixeFile}_\d{8}\.csv)$/) {
push @listFile, $1;
$sizeFile{$1} = size($_);
$sizeFile{$1} = &size($_);
}
}

Expand All @@ -159,48 +158,48 @@ sub verifFile {

my $lastFile = $listFile[-1];
my $lastSize = $sizeFile{$lastFile};
printLog("last : $lastSize $lastFile");
&printLog("last : $lastSize $lastFile");

# on le recupère dans /tmp
if ($lastFile){
print WRITE "get $lastFile $tmpFile\n\n";
while (<READ>) {
last if /^$prompt$/;
printLog($_);
&printLog($_);
}
}
# on ajoute une ligne avec un compte de test;
open TMP, ">> $tmpFile" or die $!;
print TMP '"11995";"760495646YZ";"3";"2019-11-13 15:09:08";NULL',"\n";
$lastSize++;

close TMP;
# on ajoute une ligne avec un compte de test;
#open TMP, ">> $tmpFile" or die $!;
#print TMP '"11995";"760495646YZ";"3";"2019-11-13 15:09:08";NULL',"\n";
#$lastSize += 53;
#close TMP;

# on recupere le nombre de lignes du fichier
my $nbBoursierACharger = verifFile();
my $nbBoursierACharger = &verifFile();

printLog("$tmpFile ok : $nbBoursierACharger boursiers");
&printLog("$tmpFile ok : $nbBoursierACharger boursiers");



# copie sur les portails

foreach my $portail ( @PORTAIL ) {
scp($portail);
testSize($portail, $lastSize);
&scp($portail);
&testSize($portail, $lastSize);
}


my $nbOk= 0;

# demande le reload des données
foreach my $portail ( @PORTAIL ) {
my $nbBoursierCharge = curl($portail);
my $nbBoursierCharge = &curl($portail);
if ($nbBoursierCharge == $nbBoursierACharger) {
printLog("Chargement terminé sans erreur.\n");
&printLog("Chargement terminé sans erreur.\n");
$nbOk++;
} else {
printLog("ERREUR de chargement il devrait avoir $nbBoursierACharger chargement et non pas $nbBoursierCharge");
&printLog("ERREUR de chargement il devrait avoir $nbBoursierACharger chargement et non pas $nbBoursierCharge");
}
}

Expand All @@ -209,14 +208,13 @@ sub verifFile {
if (@listFile > $nbFtpFileToKeep) {
for (my $cpt = 0 ; $cpt < @listFile - $nbFtpFileToKeep; $cpt++){
print WRITE "rm $listFile[$cpt]\n\n";
printLog(<READ>);
while (<READ>) {
last if /^$prompt$/;
print ;
&printLog($_);
}
}
}
} else {
printLog("ERROR : $nbOk portail chargé");
&printLog("ERROR : $nbOk portail chargé");
}

62 changes: 62 additions & 0 deletions script/reload_liste_boursiers.pl
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/perl

my $curl_format = 'curl -k https://%s:8443/niveau-bourse/loaddata';


my @PORTAIL= ('ara.giprecia.net', 'cacatoes.giprecia.net');




sub curl(){
my $addr = shift;

my $result = -1;

my $com = sprintf ($curl_format, $addr);
&printLog("$com");
open COM, "$com 2> /tmp/curl.error && echo |" or die $!;
$line = <COM>;
print $line, "\n";
if ($line =~ /(\d+),(\d+)/){
$result = $1;
}
close COM;
open ERROR, "/tmp/curl.error";
while (<ERROR>) {
print ;
}
close ERROR;
&printLog( "$result boursiers ont été chargés");
return $result;
}



# print daté
sub printLog(){

my @localTime = localtime time;
my $horodatage = sprintf(
'%d/%.2d/%.2d %.2d:%.2d:%.2d',
(1900 + $localTime[5]) ,
$localTime[4]+1,
$localTime[3],
$localTime[2],
$localTime[1],
$localTime[0]
);

print $horodatage, "\t" , @_, "\n";
}


my $nbOk= 0;

# demande le reload des données
foreach my $portail ( @PORTAIL ) {
my $nbBoursierCharge = &curl($portail);
}



0 comments on commit f16c6c9

Please sign in to comment.