Tâche CRON serveur mutualisé
... / Tâche CRON serveur mutualisé
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Tâche CRON serveur mutualisé

by
IsabelleR14
Created on 2018-03-23 09:48:50 (edited on 2024-09-04 11:47:45) in Hébergement Web-old

Bonjour,
Je souhaite me connecter à distance sur l'API WIT pour récupérer des données et les insérer ensuite sur une BDD pour pouvoir les traiter.
J'ai fait un script qui s'exécute quand je le lance depuis l'URL du navigateur. Mais quand je rentre les informations pour automatiser la tâche, j'ai une erreur que je n'arrive pas à résoudre :
## OVH ## START - 2021-05-08 16:08:01.659966 executing: /usr/local/php7.2/bin/php /homez.12/smagemorwn/www.smage2morin.fr/wit/wit4_avec_creation_fichier_dans_wit.php
[2021-05-08 16:08:01] Could not open input file: /homez.12/smagemorwn/www.smage2morin.fr/wit/wit4_avec_creation_fichier_dans_wit.php
[2021-05-08 16:08:01]
[2021-05-08 16:08:01] ## OVH ## END - 2021-05-08 16:08:01.850388 exitcode: 1
Voici mon code, est ce que quelqu'un peut m'aider ?
Tout ca est assez compliqué pour moi. Je pense avoir suivi les indications de la page d'aide d'OVH mais ma page de script n'est pas trouvée.
`require_once('../inc/bdd.php');
//require_once(__DIR__ .'/inc/bdd.php');

// Boucle pour relancer la recherche de données toutes les 5 minutes pendant 1h (soit 12 fois en 1h)car OVH ne permet pas de CRON plus d'1 fois par heure.
for ( $i = 1; $i <= 12; $i++ ) {


// récupération du token
$ch = curl_init("https://developer.wit-datacenter.com/oauth/token");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, "***");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// exécution de la session
$chaine = curl_exec($ch); //Exécution de la connexion au serveur Wit
$pos1 = stripos ( $chaine , "access_token") + 15;
$chaine2 = substr ( $chaine, $pos1);
$pos2= stripos($chaine2,"token_type") - 3;
$token = substr($chaine2,0,$pos2) ;
curl_close($ch);

// Initialise la connexion avec la balise désirée du serveur Wit
$ch = curl_init();
$url1 = "https://api.wit-datacenter.com/***";
$balise = "*";

// debut de la boucle
$from = "?From=".$date_heure_from."%3a00.0000000Z&Take=1000";
$url = $url1.$balise.$from;
//echo $url;

// configuration des options ->
$le_header = array(
"Authorization :Bearer ".$token,
"Content-Type :application/xml");

curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_URL, $url); // Indiquer quel URL à récupérer
curl_setopt($ch, CURLOPT_HEADER, 0); // Ne pas inclure l'header dans la réponse.
curl_setopt($ch, CURLOPT_HTTPHEADER, $le_header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// exécution de la session
$res = curl_exec($ch);

// décodage de la chaine résultante
$len = strlen($res);
//echo "len=".$len;

$buffer = "";

while ($len > 111)
{
$pos1 = stripos ($res , "") + 3;
$horo = substr($res,$pos1,16) ;
$mesure = substr($res,$pos1+26,5) ;
// echo "horo =".$horo;
// $ts = strtotime($horo . " GMT-1"); -> Heure d'hivers
$ts = strtotime($horo . " GMT-2"); // -> Heure d'été
//mesure_date BDD
$ts1 = strftime("%Y-%m-%d %H:%M:%S", $ts);//strftime = prend en compte la configuration locale du serveur web
//date_affiche BDD
$ts2 = strftime("%d-%m %H:%M", $ts);
/* echo "ts1 =".$ts1;
echo "ts2 =".$ts2;*/
$min = substr($ts1,14,2);

$buffer = $buffer.$balise."\t".$ts1."\t".$ts2."\t".$mesure."\r\n";

$res = substr($res,80,$len-80);
$len = strlen($res);
}
//}

$compteur = 0; //compteur pour connaître le nombre d'entrées en BDD


//on essaye de faire une insertion dans la BDD des données du serveur et fichiers
try{
$ps = $bdd->prepare("INSERT INTO mesures_balises_4 (sonde_ID, mesure_date, date_affich, mesure_capteur) VALUES (?, ?, ?, ?)");

//params = tableau des paramètres
$params=array($balise, $ts1, $ts2, $mesure);
$ps->execute($params);
$compteur ++;

echo $compteur .'lignes ont été ajoutées';
}
catch (Exception $e) //s'il y a une erreur, on enregistre l'erreur dans la variable $e
{
$errorcode = $e->getCode();
if($errorcode == 23000){ //Si l'erreur est 23000, on en tient pas compte = c'est une erreur de violation d'intégrité car j'ai mis mesure_date "en clé unique" dans la BDD
exit;
}
}

//La boucle doit tourner tant qu'elle est inférieur à 12 réitération toutes les 5 minutes (300/60=5)
if ($i < 12)
{
sleep(300) ;
}

}`