每周一次,我想重新启动一个永久脚本,这样我就可以压缩生成的日志文件并将其移走。
为此,我创建了以下脚本:
#!/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
答案 0 :(得分:0)
我有同样的问题。
但是将crontab PATH添加到“永久”位置,工作正常。
PATH=/home/username/.nodebrew/current/bin
5 3 * * 1 /home/app/cronjobs/utilities/newmonitoringlog.sh > /home/app/cronlog