Npm run在crontab中不起作用(cronjob)

时间:2020-01-02 20:38:29

标签: shell ubuntu npm cron nuxt.js

我想使用Makefile和Shellscript使用nuxt生成和呈现静态内容。

制作文件

deploy-content: ## Generate content using nuxt
       @echo $(/bin/bash -c cd /var/www/nuxt; npm run --prefix /var/www/nuxt generate)

render.sh

#!/bin/sh

# start generating content in background
make deploy-content > /dev/null 2>&1 &

Crontab -e :):

# Midnight 2 am
0 2 * * *        cd /var/www/generate/ && make deploy-content > /dev/null 2>&1 &

也请考虑以下事项:

  • render.sh 具有 + x 权限。
  • Makefile render.sh 位于不同的目录(不是 在/ var / www / nuxt内部)。
  • 当我从shell运行shellscript时,它工作正常,但在crontab中却不起作用。
  • 我还尝试将npm命令放在crontab straigtaway中。 (无效)

有人可以帮我吗,Pleeeeeeeeeease?可能是我错过了一些东西,却没有意识到。 :)

非常感谢,干杯!

1 个答案:

答案 0 :(得分:0)

最简单的方法:

Crontab

* * * * *        /usr/bin/make -C /var/www/generate/ > /tmp/log.txt

Makefile(/ var / www / generate / Makefile)

deploy-content:
    /bin/bash -c "cd /var/www/nuxt/; npm ls"

输出应位于

cat /tmp/log.txt