python-3.x - 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 上执行每日/每小时脚本以及您是如何实现的?预先感谢。
解决方案
一种解决方法是将变量添加到 cron 运行的命令中,如下所示:
* * * * * DISPLAY=:99.0 /path/to/the/script.py
另一个 - 在 /etc/environment 中设置变量:
DISPLAY=:99.0
作为最后的手段,您应该能够在 cron 文件本身中设置一个变量,就像使用 /etc/environment 一样,只需将它添加到文件的最开始:
DISPLAY=:99.0
这是一篇关于环境变量的好文章。
推荐阅读
- javascript - 从 JavaScript 中的箭头函数返回数组
- android - 在 onBindViewHolder RecyclerView Firebase 适配器中检索用户 uid 详细信息 | FirebaseUI | 安卓,Java
- c# - 如何在 LINQ XML 中使用多个链接项进行查询
- javascript - 在同一行添加 2 个按钮
- javascript - 通过抓取 className,根据页面加载时指定的现有内容替换 DIV 内容
- adb - 验证 Android Toast 消息
- spring-boot - 无法连接到 Docker-compose 上的容器(Spring Cloud Config Server)
- excel - 使用 Sub 设置 Class 属性
- scikit-learn - 有没有办法在 python 中为 NMF 重塑多个图像?
- python - 根据pyspark中的分区列生成重复行号