Page 2 sur 3

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 13:41
par micsec
j'ai essayé des les 2 commandes dans Putty
Aucun retour d'erreur (retour au prompt pi@raspberrypi - $) et aucun résultat
Voici le contenu de mon PHP
#!/usr/bin/php
<?php
header('Location: https://smsapi.free-mobile.fr/sendmsg?u ... berry%20OK');
exit;
// urlencode (texte)
?>
(J'ai mis urlencode en commentaire pour un usage futur )
Ceci permet d'envoyer un texto sur mon portable
Je te le rappelle, ce php marche quand on l'appelle depuis un navigateur

Je me demande si je n'ai pas fait une action malencontreuse dans mon RPi ? Comme je l'ai installé depuis peu, est-ce que je n'aurais pas intérêt à le ré-installer complètement ?
Dans ce cas, comment on fait ?

Merci

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 13:52
par mikebzh44
Si cette page marche en étant appelé par ton navigateur alors tu devrais tester la commande de Manfraid :

Code : Tout sélectionner

curl http://xxx.xxx.xxx.xxx/envoi_notification.php
(en remplaçant bien sur xxx.xxx.xxx.xxx par l'adresse IP ou le hostname de ton RPi et partant du principe que ton fichier envoi_notification.php est à la racine du site web).

Reçois-tu le SMS ?

Si oui, tu peux donc mettre cette ligne dans la crontab.

Pour voir quel PHP est utilisé, tu tapes la commande :

Code : Tout sélectionner

type php
Le système te donnera le chemin complet vers l'interpréteur PHP

C'est ce chemin qu'il faut mettre en début du fichier donc #!/usr/bin/php ou #!/usr/bin/php5 ou ...

Il faut aussi que le script php possède le droit d'exécution (quand tu fais la commande ls -l, tu dois avoir rwx au début de la ligne).

Tu peux ensuite appeler le script :

Code : Tout sélectionner

./envoi_notification.php
Ca marche ? Message d'erreur ?

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 18:00
par micsec
j'ai répondu , j'ai dû faire une mauvaise manip, je ne retrouve pas mon message. Je recommence...

essai suivant dans /var/www/
./envoi_notification.php
réponse:
-bash: ./envoi_notification.php : /usr/bin/php^M : mauvais interpréteur : Aucun fichier ou dossier de ce type
Je ne comprends pas ce "^M" après php ! il n'y a rien decela dans mon php

Alors que mon php de test (phptest.php qui appelle phpinfo(); )fonctionne bien

ls -l donne
-rwxr-xr-x 1 pi pi .... envoi_notification.php
-rwxr--r-- 1 pi root .... phptest.php

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 18:25
par mikebzh44
^M c'est parce que ton fichier à été généré sous Windows et transfert sous Linux en binaire et non texte. Le ^M correspond au retour chariot Windows.

Paramètre ton logiciel de transfert (ftp ? winscp ?) Ou renommé ton fichier en .txt avant de le transférer puis change l'extension ensuite.

Envoyé de mon Nexus 5 en utilisant Tapatalk

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 19:58
par mike913
micsec a écrit : #!/usr/bin/php
<?php
header('Location: https://smsapi.free-mobile.fr/sendmsg?u ... berry%20OK');
exit;
// urlencode (texte)
?>
En voyant ton script je pense que cela ne peux pas marcher en ligne de commande:
header est une instruction qui modifie l' entête HTTP et en ligne de commande tu n'es pas dans le cadres du HTTP.
Peut-être avec la commande curl, ou wget.

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 20:33
par micsec
ok
comme il y a un doute dans l'éditeur et le transfert FTP, j'ai fait l'essai suivant : j'ai repris le fichier phptest.php qui marche, et j'ai mis l'instruction d'appel de l'envoi de SMS
Je n'ai plus l'erreur "^M" mais je ne reçois toujours pas le sms


quel éditeur et quel transfert FTP utilises-tu ?
J'utilise ConTEXT et Filezilla

Re: Configuration de la crontab

Posté : mer. 26 nov. 2014 20:51
par mikebzh44
C'est un peu plus compliqué que ça n'avait l'air.

Etant aussi chez Free, j'ai activé le service de notification par mail.

Donc, si je t'appelle l'URL https://smsapi.free-mobile.fr/sendmsg?u ... 20World%20! dans le navigateur Web, ça marche.
Dans ta page PHP avec le Header, aussi.

Mais, l'exécution de la page PHP comme un script ne marche pas.

La solution :

curl -k 'https://smsapi.free-mobile.fr/sendmsg?u ... 20World%20!'
wget --no-check-certificate 'https://smsapi.free-mobile.fr/sendmsg?u ... 20World%20!'

Attention a bien mettre une simple cote (') en début et fin d'URL.

Donc le shell :

#!/bin/bash
echo "Envoi SMS"
wget --no-check-certificate 'https://smsapi.free-mobile.fr/sendmsg?u ... ry%20OK%20!'

Maintenant, si tu voulais garder un script PHP pour faire d'autres trucs ensuite, il va falloir trouver comment appeler cette URL en mode batch.

Pour ton histoire de ^M, moi je passe par winscp comme ça d'édite le fichier depuis mon PC sous Windows directement sur le RPi.

Re: Configuration de la crontab

Posté : jeu. 27 nov. 2014 12:26
par micsec
ok
j'ai créé le shell avec wget...
lorsque je l'appelle directement "./envoi_SMS.sh, ça fonctionne bien, je reçois le SMS

Donc une bonne chose

Je suis donc revenu à mon crontab, j'y comprends plus rien, il ne marche plus, même en reprenant le test qui marchait avant
/*5 * * * * pi /home/pi/job.sh (qui enregistre la date dans un fichier)

J'ai vraiment des soucis pour utiliser crontab !
une idée ?

Re: Configuration de la crontab

Posté : jeu. 27 nov. 2014 13:04
par mikebzh44
Et comment ton script job.sh appelle ton envoi_SMS.sh ?

Re: Configuration de la crontab

Posté : jeu. 27 nov. 2014 13:29
par micsec
job.sh :

#!/bin/sh
date >> crontest.txt

crontab -e

##
*/5 * * * * pi /home/pi/job.sh
#