2011-02-03 35 views
7

Tôi có một công việc định kỳ gọi là tập lệnh shell.Cách chạy công việc Cron cho Node.js

*/2 * * * * sh cron_test.sh >> output.log 

Trong một bên shell script, tôi chạy một số dòng lệnh thích:

#!/usr/bin 

./mongo/bin/mongodump ..... 

FILE_NAME='abc' 

node mynode.js $FILENAME 

Nó chạy nếu tôi chỉ cần gọi cron_test.sh tại dấu nhắc lệnh. Tuy nhiên, nó không chạy nút nếu nó được chạy bởi cronjob. Nó chạy lệnh mongodump. Vì vậy những gì là sai? có bất cứ điều gì tôi phải thiết lập cho phép, vv?

+0

Bạn có chắc chắn nó hoạt động từ dòng lệnh không? Ý tôi là, bạn chưa định nghĩa biến 'FILENAME'. – CanSpice

+0

Bạn chắc chắn rằng nút nằm trong đường dẫn của người dùng mà cron đang chạy dưới? – macarthy

+0

Bạn biết rằng bạn có 2 biến tên tệp: 'FILE_NAME' và' FILENAME' - phải không? –

Trả lời

6

nhờ .. Tôi tìm thấy nó ra ..

hoặc là tôi cần phải chỉ định đường dẫn nút hoặc làm điều đó trong kịch bản sh:

nodejs/node myscript.js 

nơi nodejs/nút là nơi mà các nút cài đặt .

+0

Hallelujah. Cảm ơn bạn. Tôi đã vật lộn vấn đề đó hàng giờ liền. – stephband

Các vấn đề liên quan