Forum général.général cron et red hat

Posté par  .
Étiquettes : aucune
0
2
mar.
2005
Automatiser envoi mail ne marche pas avec crontab.

mon script php : testenvoi.php situé sur le serveur dans un repertoire :/home/testmail/


#!/usr/local/bin/php
mail("test@test.com","sujet","corps du sujet");


ma crontab :

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

# vpopmail
40 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

# envoi email automatique
25 12 * * 3 root /home/testmail/testenvoi.php


Ou est l'erreur ? le chemin d'acces au fichier php est il le bon ? oui à priori ?

J'ai fait des tests : lancement du script testenvoi.php à partir du navigateur => ça marche parfaitement (en modifiant évidemment
la ligne magique par <?php ?>).
En ligne de commande :
/usr/local/bin/php /home/testmail/testenvoi.php => marche pas

Status: 404
Content-type: text/html
X-Powered-By: PHP/4.3.8

No input file specified.

Ne trouve pas le fichier alors que j'ai fait les chmod 755 approprié.

Qui peut m'aider ?
  • # shebang

    Posté par  (site web personnel) . Évalué à 3.

    Ce n'est pas la femelle de "bang" mais le nom de la première ligne d'un script dans laquelle tu spécifies le programme nécessaire pour l'interprétation des commandes à suivre.
    Dans foobar.php :
    #!/usr/bin/php
    <?php
    phpinfo();
    ?>


    Puis :
    $ chmod u+x foobar.php
    $ ./foobar.php | tail -n 2
    phpinfo()
    PHP Version => 4.3.10-8
    • [^] # Re: shebang

      Posté par  (site web personnel) . Évalué à 2.

      Ha oui, aussi.
      «shebang» vient sharp+bang = #!

      Je ne vois pas trop l'utilité de php pour envoyer un mail, les commandes mail et formail sont peut être plus indiquées, fais comme tu préfères.
      • [^] # Re: shebang

        Posté par  . Évalué à 0.

        c'est juste sur le principe de fonctionnement, c'est pour ça que j'ai utilisé l'envoi d'email.
        Je vais tester mais je trouve ça étrange qu'en ligne de commande cela ne fonctionne pas. du style :
        <code>
        usr/bin/local/php /home/tesmail/testenvoi.php
        </code>

        avec testenvoi.php
        <code>
        <?php
        mail("test@test.fr","sujet","message");
        ?>
        </code>
        alors que via un click sur le programme du navigateur, cela fonctionne bien et que la commande php se trouve bien dans usr/bin/local/php
      • [^] # Re: shebang

        Posté par  . Évalué à 0.

        voici la réponse avec
        <code>
        ./testenvoi.php | tail -n 2
        </code>
        avec testenvoi.php :
        <code>
        #!/usr/local/bin/php
        <?php
        mail("arnbret2004@yahoo.fr", "Mon Sujet", "test");
        ?>
        </code>

        réponse :
        ./testpage.php | tail -n 2
        sh: ./testpage.php: bad interpreter: No such file or directory
        • [^] # Re: shebang

          Posté par  . Évalué à 1.

          Est ce tu as /usr/local/bin/php (ou /usr/bin/php) ?

          A priori il te manque le support de php en ligne de commande
          Il faut que tu installes php-cli
          • [^] # Re: shebang

            Posté par  . Évalué à 0.

            dans l'arborescence du serveur j'ai bien :
            usr/local/bin/php
            mais je n'ai pas /usr/bin/php.

            Le script ne se lance pas en ligne de commande. J'ai l'impression que c'est plus une erreur de chemin du fichier vu le message d'erreur?
            mais pourtant il est bien là mon fichier :
            dans /home/testmail/testenvoi.php.

            D'où cela peut il venir, mince alors ?
            • [^] # Re: shebang

              Posté par  (site web personnel) . Évalué à 2.

              Bon, essaie de faire à la ligne de commande :
              $ whereis php
              ça te dira ou est ton interpréteur php. On se fout complètement de l'endroit où il est à partir du moment ou tu indiques le bon chemin dans ton shebang.

              Ensuite, essaie :
              $ php tonscript.php
              Si ça chie, ya un problème dans ton script.

              NB: le head -n 2, c'était juste pour ne garder que les deux premières lignes de la sortie, tu n'en as pas besoin.
              • [^] # Re: shebang

                Posté par  . Évalué à 0.

                script php :
                #!/usr/local/bin/php
                <?php
                mail("test@test.fr", "Mon Sujet", "test");
                ?>
                commande :
                usr/local/bin/php testenvoi.php

                ou php testenvoi.php

                Ca marche pas, je ne comprends vraiement pas.

                message erreur :

                Status: 404
                Content-type: text/html
                X-Powered-By: PHP/4.3.8

                No input file specified.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.