我有一个 sh 脚本,我想通过 cron 每三个小时调用一次。该脚本调用了一堆 node.js 脚本,并且在直接调用时可以完美运行。但是,当通过 cron 调用时,我得到了 sh 脚本记录的日期,但没有来自我的 node.js 脚本的其他日志(直接调用 sh 时所有日志都很好)。知道为什么吗?
该脚本位于内部目录中,但我使用的是所有绝对路径。请在下面找到我的代码,如有必要,请在Github上找到有关 node.js 内容的更多详细信息(注意:服务器最近从 sh 更改为 bash,但我认为这不会产生任何实际影响)。
crontab
SHELL=/bin/sh
MAILTO=my@email.com
0 */3 * * * /absolute/path/to/script.sh
脚本.sh
#!/usr/bin/env sh
node /absolute/path/to/script1.js
node /absolute/path/to/script2.js
node /absolute/path/to/script3.js
LOGFILE=/absolute/path/to/error.log
log(){
message="$@"
echo $message
echo $message >>$LOGFILE
}
log "Cron performed $(date)"