从crontab永久停止的脚本仅在手动调用时才起作用

时间:2014-07-09 13:02:17

标签: crontab forever

每周一次,我想重新启动一个永久脚本,这样我就可以压缩生成的日志文件并将其移走。

为此,我创建了以下脚本:

#!/bin/bash
# restarts the monitoring once per week to make sure the logifiles dont grow to big

today=`date -d "now" +"%Y%m%d-%H%M"`

echo 'Restarts the monitoring once per week to make sure the logfiles dont grow to big'
cd /home/app/monitoring
forever stop /home/app/monitoring/bin/monitoringd.js

echo 'rename old log'
echo 'mv /home/app/.forever/monitoring.log  /home/app/.forever/'$today'.log'
mv /home/app/.forever/monitoring.log  /home/app/.forever/$today.log
touch /home/app/.forever/monitoring.log

echo 'Start process with new log'

APP_ENV=production APP_PORT=7071 forever start -al /home/app/.forever/monitoring.log /home/app/monitoring/bin/monitoringd.js

echo 'Compress old log'
echo 'gzip /home/app/.forever/'$today'.log'
gzip /home/app/.forever/$today.log

cd /home/app/

当我手动运行它时,它按预期工作。当从cronjob调用时,永远的过程不会停止,其余的也不会工作。

任何想法为什么? 我已经将路径更改为绝对路径,而crontab与手动运行脚本的用户相同。

编辑: 我注意到的是创建了一个新日志,但没有使用。它保持0字节,并且作业的输出可能推荐到/ dev / null。

这是crontab条目:

5   3  *  *  1 /home/app/cronjobs/utilities/newmonitoringlog.sh > /home/app/cronlog

1 个答案:

答案 0 :(得分:0)

我有同样的问题。

但是将crontab PATH添加到“永久”位置,工作正常。

PATH=/home/username/.nodebrew/current/bin
5   3  *  *  1 /home/app/cronjobs/utilities/newmonitoringlog.sh > /home/app/cronlog