TimLeaf 2019-12-02 18:51 采纳率: 100%
浏览 526
已采纳

crontab执行node.js和直接执行的结果不一致。

问题描述

使用Node.js的Puppeteer写了一个爬取网站数据的脚本。

并将执行该脚本的命令写入了CentOS的Shell脚本,代码如下:

cd /home/timleaf/WebScrape && /usr/bin/node reins.js &> crontab.log

然后将Shell脚本,写入crontab,定期执行。

Web Scraping

30 6 * * * /home/timleaf/WebScrape/scrape.sh

你期待的结果是什么?实际看到的错误信息又是什么?

可以从log中看到,scrape.sh被执行了。

但,不仅是crontab.log中是空的,保存的爬取数据也一样是空的。

而我单独在终端里执行

cd /home/timleaf/WebScrape && /usr/bin/node reins.js &> crontab.log

时,却是可以得到正常结果的。

这个问题,我应该从哪里排查。烦请各位指教一下。

  • 写回答

2条回答

  • weixin_43975295 2019-12-03 09:34
    关注

    多半是环境变量的问题吧,应为用crontab计划任务来运行脚本的时候,PATH变量的值和你直接在终端运行时PATH变量的值不同。
    建议在用crontab运行脚本时,脚本开头处加上两行引入环境变量:source /etc/profile source ~/.bash_profile

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错