web-dev-qa-db-fra.com

Comment écrire un travail cron sur le serveur AWS EC2

J'ai créé un travail cron dans AWS EC2 mais cela ne fonctionne pas.

J'ai suivi les étapes ci-dessous pour créer l'onglet cron:

  • Étape 1: je me suis connecté à AWS EC2 Instace
  • étape 2: crontab -e
  • Étape 3: mode d'insertion
  • Étape 4: j'ai entré * * * * * php/var/www/html/welcome.php (Pour exécuter toutes les minutes.)
  • Étape 5: :wq

L'onglet Cron est créé mais ne fonctionne pas.

Pouvez-vous m'aider s'il y en a PHP script signifie s'il vous plaît fournissez-moi. Dois-je donner des espaces entre chaque étoile?

22
user2180976

Tout d'abord, vous devez mettre un espace entre php et /var:

De

* * * * * php/var/www/html/welcome.php

à

* * * * * php /var/www/html/welcome.php
             ^

Ensuite, vous feriez mieux d'utiliser /bin/php au lieu de simplement php. Pour déterminer l'emplacement de l'exécutable php, tapez which php dans votre console, il vous donnera le chemin du fichier. Cela deviendra donc quelque chose comme ceci:

* * * * * /bin/php /var/www/html/welcome.php
          ^^^^^^^^

Plus de choses:

  • vérifier si crontab est enregistré correctement? Tapez crontab -l. Votre nouvelle ligne crontab devrait être là.
  • est le script exactement dans ce répertoire? Essayez ls -l /var/www/html/welcome.php.
  • le script s'exécute-t-il si vous le faites à partir de la console? Essayez /bin/php var/www/html/welcome.php pour voir s'il s'agit d'un problème de script ou de crontab.
  • le script a-t-il un mode d'exécution? Essayez chmod 755 /var/www/html/welcome.php

Tenez-nous au courant afin que nous puissions trouver la cause de l'erreur.

45
fedorqui

L'exécution de cron sur EC2 n'est pas différente de l'exécution sur n'importe quel serveur * nix - pour autant que je sache. Je voudrais vérifier les messages système pour toute erreur. Vous pouvez également rediriger stderr/stdout vers un fichier comme dans

 * * * * * <your script>  >> /var/tmp/out.log 2>&1

et vérifiez tout problème pour commencer.

3
Fergus

Peut être trop tard mais de toute façon si vous avez l'intention d'exécuter le script toutes les minutes, la commande devrait probablement être

* * * * * php /var/www/html/welcome.php
3
rrbathula