67 votes

Comment exécuter un script Node.js via une tâche cron ?

Tout simplement, j'ai un script de nœud que je veux exécuter une fois par mois.

 30 6 1 * * node /home/steve/example/script.js

Mais cela ne fonctionne pas, probablement à cause du chemin ou du shell sous lequel la commande est exécutée. J'ai essayé les moyens suivants d'exécuter le nœud via cron (testé avec -v):

 steve@atom:~$ node -v
v0.4.2

steve@atom:~$ sh node -v
sh: Can't open node

steve@atom:~$ bash node -v
/usr/local/bin/node: /usr/local/bin/node: cannot execute binary file

steve@atom:~$ /usr/local/bin/node -v
v0.4.2

steve@atom:~$ sh /usr/local/bin/node -v
/usr/local/bin/node: 1: Syntax error: "(" unexpected

steve@atom:~$ bash /usr/local/bin/node -v
/usr/local/bin/node: /usr/local/bin/node: cannot execute binary file

Je suis à court d'idées à essayer, un conseil ?

115voto

Dan D. Points 17448

fournissez simplement le chemin complet vers le nœud /usr/local/bin/node dans votre tâche cron comme :

 30 6 1 * * /usr/local/bin/node /home/steve/example/script.js

30voto

Mauvis Ledford Points 12424

De plus, placez simplement #!/usr/local/bin/node en haut du script que vous souhaitez exécuter. Ensuite, il saura automatiquement exécuter le script avec node. Assurez-vous que le fichier est également exécutable.

7voto

zabusa Points 1671

dans mon ordinateur portable utilisant Linux Mint, le chemin donné ne fonctionne pas, donc je l'ai utilisé pour contourner le problème.

$ which node

$ /usr/bin/node cela a fonctionné pour moi.

5voto

imbolc Points 99

Vous pouvez également spécifier des chemins d'accès aux fichiers binaires au-dessus de votre crontab utilisateur comme :

 PATH=/bin:/usr/bin:/usr/local/bin

* * * * * cd your/path && node foo.js
* * * * * cd your/path && npm run bar

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X