80 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 ?

125voto

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.

10voto

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

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.

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