首页 > 解决方案 > CRONtab 与 Google Cloud VM 结合使用

问题描述

我有一个谷歌虚拟机,我用它来运行一些抓取脚本。这些脚本是用 Python 和 Selenium 编写的。每次我使用 SSH 重新连接到 VM 时,似乎我需要使用以下命令在 xvfb 中重新启动无头浏览器

DISPLAY=:99.0

启动浏览器后,我可以启动爬虫;我通过给出 Python 脚本的整个路径来做到这一点。

python3 Code/s01-productdev/special/test/quantityScaper.py

我想自动化每小时运行这个爬虫的过程,并使用 CRONtab 来执行脚本。目前我将以下两行应用于我的 CRONtab 文件:

00 * * * * export DISPLAY=:99.0
01 * * * * /usr/bin/python3 Code/s01-productdev/special/test/quantityScaper.py >> logfile.out

不知何故,cronTAB 没有执行任何操作。名为 logfile.out 的日志文件也保持为空。是否有人熟悉如何在 Google VM 上执行每日/每小时脚本以及您是如何实现的?预先感谢。

标签: python-3.xcron

解决方案


一种解决方法是将变量添加到 cron 运行的命令中,如下所示:
* * * * * DISPLAY=:99.0 /path/to/the/script.py

另一个 - 在 /etc/environment 中设置变量:
DISPLAY=:99.0

作为最后的手段,您应该能够在 cron 文件本身中设置一个变量,就像使用 /etc/environment 一样,只需将它添加到文件的最开始:
DISPLAY=:99.0

这是一篇关于环境变量的好文章。


推荐阅读