shell - Npm run 在 crontab (cronjob) 中不起作用
问题描述
我想使用 Makefile 和 shellscript 使用 nuxt 生成和渲染静态内容。
生成文件:
deploy-content: ## Generate content using nuxt
@echo $(/bin/bash -c cd /var/www/nuxt; npm run --prefix /var/www/nuxt generate)
渲染.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 中。(没有工作)
有人可以帮助我吗,Pleeeeeeeeeeease?可能是我错过了什么,没有意识到。:)
非常感谢,干杯!
解决方案
最简单的有效情况:
crontab
* * * * * /usr/bin/make -C /var/www/generate/ > /tmp/log.txt
生成文件(/var/www/generate/Makefile)
deploy-content:
/bin/bash -c "cd /var/www/nuxt/; npm ls"
输出应该在
cat /tmp/log.txt
推荐阅读
- spring - Spring Boot 尽早拦截请求
- php - Laravel 文件管理器/Unisharp 中缩略图的相对高度
- python-3.x - PIL中图像的边框颜色问题
- jquery - Bootstrap Modal Is not Embedding Image inside itself
- sqlite - Delphi & SQLite:获取过去 12 个月每月的记录数
- r - 当元素从一个向量传递到 R 中的子向量时,如何可视化它们?
- node.js - 我的 node.js socket.io 简单服务器在由 docker run 运行时不起作用
- laravel - Laravel 6 测试 - 未知数据库':内存:'
- sql - 如何确定 VBA SQL 语法问题的原因?
- java - 为什么 Java N1QL 中的 ORDER BY 不能按预期工作