Aller au contenu

Lancement D'un Script Php Via Le Planificateur De T


e2oir

Messages recommandés

Bonjour à tous,

J'ai découvert sur mon Synology le "planificateur de tâches" et le script défini par l'utilisateur.

N'étant pas du tout familier des environnements Linux/Shell je voudrais savoir s'il était possible de lancer un script PHP directement à partir de cette fenêtre.

J'ai essayé de faire ça de manière barbare :

7l0c.png

ça ne fonctionne pas... :)

Dois-je passer obligatoirement par un script .sh qui lui-même appellera ma page .php ?

Dans ce cas à quoi doit ressembler ce script ?

Merci d'avance pour votre aide !

Lien vers le commentaire
Partager sur d’autres sites

1e chose, dans ton script, il faut donner le chemin absolu de chaque binaire appeler

Ensuite, rajoute une sortie vers un log dans le plannificateur de tache (genre rajoute >> /volume1/web/out.txt)

Enfin, hésite pas à poster ton script, on se fera une joie de te le décortiquer (Je sent que CoolRaoul est pas loin :D)

Lien vers le commentaire
Partager sur d’autres sites

Merci !

C'est donc possible de lancer un script php directement, plutôt une bonne nouvelle !

Il s'agit de relever le nombre de mails "non-lus" dans une première boite et d'envoyer une notification à une autre boite pour indiquer le nombre de non-lus.

<?php

function count_read() {
	$file = 'count.txt';
	$fp = fopen ($file, r);
	$n = fread($fp, filesize('count.txt'));
	fclose ($fp);
	return $n;
}

function count_write($n) {
	$fp = fopen ("count.txt", w);
	
	if (fwrite($fp, $n) === FALSE) {
		exit;
	}
	
	fclose ($fp);
}



$mailbox = imap_open("{imap.gmail.com:993/imap/notls/norsh/ssl/novalidate-cert}INBOX","*****@*******","*********");
	if($mailbox) {
	$nMessages = count(imap_search($mailbox, 'UNSEEN'));
	
	if($nMessages > count_read()) {
		mail('*****@*******', 'Mails à lire : ['.count_read().']', 'Ce message automatique a été envoyé à partir de Synology.');
	}
	
	count_write($nMessages);
	
	}
	imap_close($mailbox);
?>

Si je comprends bien, quand tu parles de chemin absolu, il s'agirait de mettre pour "count.txt" : "/volume1/web/count.txt" ?

Lien vers le commentaire
Partager sur d’autres sites

Par exemple oui, il faut le faire pour toute référence a des fichiers "durs" (qui ne sont pas des variables)

Je parlais surtout des commandes, si il y en avait dans ton script, mais vu qu'il n'y a que tu php, tu devrais pas en avoir besoin

Je pense qu'il faut juste préciser au planificateur où se trouve php :)

Rajoute en tout début le chemin de l'exécutable php : "/usr/bin/php -f /volume1/web/mail.php"

Et rajouter une sortie de log :

/usr/bin/php -f /volume1/web/mail.php >> /volume1/web/out.txt
Lien vers le commentaire
Partager sur d’autres sites

  • 3 semaines après...

Hello !

Par exemple oui, il faut le faire pour toute référence a des fichiers "durs" (qui ne sont pas des variables)

Je parlais surtout des commandes, si il y en avait dans ton script, mais vu qu'il n'y a que tu php, tu devrais pas en avoir besoin

Je pense qu'il faut juste préciser au planificateur où se trouve php :)

Rajoute en tout début le chemin de l'exécutable php : "/usr/bin/php -f /volume1/web/mail.php"

Et rajouter une sortie de log :

/usr/bin/php -f /volume1/web/mail.php >> /volume1/web/out.txt

Je suis en plein dedans...

J'ai installé "Tiny Tiny RSS" dans mon dossier "web"; pour lancer la MaJ des articles, il faut lancer le fichier "update.php" qui est à la racine du dossier de ttrss.

En indiquant dans un terminal - PuTTY - la commande "/usr/bin/php /volume1/web/10/Tiny/update.php --feeds > /volume1/web/10/Tiny/ttrss_update.log 2>&1;" tout fonctionne bien... Mais pour cela, il ne faut pas être "root" (php n'aime ce mec ;-) ) [ ce qui au passage, me fait douter que la copie écran de "e2oir" soit bonne: le script php est lancé en "root" :mellow: ]

J'indique cette même ligne dans le planificateur de tache avec le même user qui fonctionne sous PuTTY (admin) et là... plus rien ne fonctionne !!! :wacko:

Quelqu'un a une idée ???

Lien vers le commentaire
Partager sur d’autres sites

Merci Bud pour la piste, mais j'ai vraiment l'impression que le planificateur de tache... c'est pas vraiment ça !!!

Mais quand on voit cela : tu te poses quand même quelques questions...

(NB: j'ai quand même vérifié tous mes "caractères bizarres" et autres erreurs de jeunesse, mais rien trouvé d’exceptionnel... je me suis donc inspiré de

et de ce qui se racontait là : http://forum.synology.com/enu/viewtopic.php?f=190&t=69765 - en même temps, je n'avais pas vu ces topics :unsure: )

Lien vers le commentaire
Partager sur d’autres sites

  • 3 ans après...

Bonjour, 

J'ai lu attentivement, tout ce que je pouvais trouver sur le sujet, je pense avoir appliqué l'ensemble des conseils lus à droite comme à gauche, mais je reste avec un problème.

Voici donc le script que je tente d'exécuter:

/usr/bin/php -f /volume1/web/cron/requestdata.php5 >> /volume1/web/out.txt

Dans mon out.txt j'ai ceci:

Fatal error: Call to undefined function mysql_connect() in /volume1/web/cron/requestdata.php5 on line 10

et voici ce que j'ai à la ligne dite:

 $link = mysql_connect($serveur, $login, $pass) or die("Erreur de connexion au serveur MySql");
 

Pour info, lorsque j’exécute le fichier requestdata.php5 directement avec mon browser, tout fonctionne parfaitement. 

Pouvez-vous m'orienter, j'avoue butter sur ce problème depuis quelques temps déjà.

Merci d'avance pour votre aide! 

Lien vers le commentaire
Partager sur d’autres sites

  • 4 mois après...

Bonjour

J'ai eu à faire au même problème (script php qui s’exécute depuis un navigateur mais pas depuis une tâche planifiée) et j'ai trouvé la solution

la ligne de commande de la tâche planifiée ne doit pas être

/usr/bin/php -f /volume1/web/cron/requestdata.php5 >> /volume1/web/out.txt

mais, si vous avez php 5.6

/usr/local/bin/php56 -f /volume1/web/cron/requestdata.php5 >> /volume1/web/out.txt

Cordialement

Pascal

Modifié par PascalWMR
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.