Résultat avec php en mode cli
Bonjour,
j'ai un problème de compréhension de résultat ,
je lance un cron toute les minutes (pour le test).
ce cron fait ceci (pour mes test je suis sous ubuntu en desktop)
Code:
1 2
|
* * * * * php -f /home/dell/cli/mail.php |
toutes les minutes il m'envoie un mail, il lit un fichier qui contient des adresses ip
voici le fichier :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?php
$nb_ligne = file_get_contents('ip_public.txt');
$ligne = substr_count($nb_ligne, "\n");
#echo "il y a ++++".$ligne;
$nb_ip = substr_count($nb_ligne, "\n");
$destination = 'mail@mail.fr';
// Subject
$sujet = $nb_ip."nb ip ";
$msg ="echec lecture ip public";
// Function mail()
if (substr_count($nb_ligne, "\n") == 1 )
{
echo "recupere ip ********\n";
$txt = fopen('ip_public.txt', 'r');
$ip_public = fgets($txt);
fclose($txt);
// var_dump($ip_public);
// Subject
$sujet = $ip_public;
$msg =$ip_public;
// Function mail()
if(mail($destination, $sujet, $msg))
{
echo "lecture ok";
echo "envoie ok => ".$ip_public."date :".date('Y-m-d H:i:s'); // 2012-10-11 15:35:53;
// unlink("ip_public.txt");//suppresion du fichier
}
}
else
{
echo"XXXXXXXXXX".$nb_ip."XXXXXXXXXXX vider le fichier\n";
$txt = fopen('ip_public.txt','r+');
ftruncate($txt,0);
if(mail($destination, $sujet, $msg))
{
echo "lecture échoué, vidage du fichier";
}
} |
le but c'est de récupérer l'ip dans le fichier ip_public.txt
- si j'ai un seul ip => envoie mail, et indique l'ip
- si j'ai plusieur ip => envoie mail, envoie du nombre d'ip => si plus d'un ip, vidage du fichier.
voici le cron qui me charge les ip, toutes les 2 minutes
Code:
1 2
|
*/2 * * * * curl ifconfig.me cat >> /home/dell/cli/ip_public.txt |
lorsque je test tout ça manuellement en appelant php tout fonctionne
comme sur des roulettes
Code:
1 2
|
dell@dell-Inspiron-3521:~/cli$ php mail.php |
par contre lorsque je laisse faire le cron ,
je reçois bien toute les minutes les mails ,
mon sujet est toujours 0nb ip ?
Code:
1 2
|
substr_count($nb_ligne, "\n") |
avec un
je vois bien que toutes les 2 minutes mes ip publics sont enregistré dans le fichiers.
j'espère avoir essayer d'expliquer au mieux mon soucie.
Merci d'avance de vos réponse, si vous avez une idée :)