Tôi đã viết kịch bản lệnh Rake sẽ tự động chạy với Crontab. Kịch bản chạy tốt khi gõ vào dòng lệnh nhưng không chạy đúng trong cron.Kịch bản lệnh Shell của tôi khởi chạy Rake không chạy đúng khi được khởi chạy qua cron
Các kịch bản trông như thế này:
#!/bin/sh
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
Thiết lập crontab trông như thế này:
10 0,6,12,18 * * * /home/mick/work/launch.sh >> /home/mick/work/launch.log
Sau khi thực hiện, các log file chỉ chứa ngày nhưng không có gì khác, và lỗi tôi nhận được trong syslog trông giống như sau:
Mar 18 18:10:01 CRON[21773]: (mick) CMD (/home/mick/work/launch.sh >> /home/mick/work/launch.log)
Mar 18 18:10:01 CRON[21772]: (CRON) error (grandchild #21773 failed with exit status 127)
Mar 18 18:10:01 postfix/sendmail[21776]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 18 18:10:01 CRON[21772]: (mick) MAIL (mailed 1 byte of output; but got status 0x004b, #012)
EDIT:
Nhờ nhận xét của @Holger Just, tôi đã tìm thấy this link giúp tôi có một kịch bản làm việc.
Dưới đây là phiên bản cập nhật của kịch bản của tôi
#!/usr/bin/env bash # UPDATED TO GET ACCESS TO 'source'
export PATH=blabla # NOT SURE THIS HELPED AS IT WAS MY FIRST MODIF AND DIDN'T FIX
source /home/mick/.rvm/environments/default # LOADING RVM TO MAKE THINGS WORK
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
Thậm chí tất cả nội dung môi trường được thêm vào tập lệnh ở đây đều không khắc phục được sự cố tương tự mà tôi gặp phải, nhưng một nguồn ~/.bash_profile đơn giản/quá mức "đã làm điều đó. – David