How can you execute a Node.js script via a cron job?

眉间皱痕 提交于 2019-11-27 17:35:59

just provide the full path to node /usr/local/bin/node in your cron job like:

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

Additionally, just put #!/usr/local/bin/node at the top of the script you want to execute. Then it will automatically know to execute the script with node. Make sure the file is executable as well.

in my laptop using Linux mint the given path not working so i used this to get a work around.

$ which node

$ /usr/bin/node this worked for me.

Marc Smith

I don't know if changing your relative paths in your script to absolute paths is a good idea
(what happens when your file system changes or you deploy in another environment?)

You could try wrapping it in a shell script, setting some environment variables in the crontab execution. (specifically PATH & NODE_PATH for starters)

Try my suggestion for this similar question:
https://stackoverflow.com/a/27823675/608269

These answers here saying using absolute path will all cause major problems for running a larger node app!

Real Complete Solution

Edit Cron Jobs

crontab -e

Find Node Path

which node

CD into the destination folder, then Change Cron Job according to Node Path and run script

*/2 * * * * cd /home/destination/path && /bin/node index.js

This will then allow you to run a full NodeJS application without all the errors like how using an absolute path for your index.js file.

Timothy Moody

Use absolute paths for the node alias and the file to be run.

Edit Cron Jobs

crontab -e

Entry to Run Our Node File

This will run every minute.

*/1 * * * * * /bin/node /public/test.js

Full Tutorial https://askmacgyver.com/blog/tutorial/how-to-run-node-scripts-from-a-cron-job

You can also specify paths to binary files on top of your user crontab like:

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

* * * * * cd your/path && node foo.js
* * * * * cd your/path && npm run bar
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!