【问题标题】:Run Python Script in VM (Ubuntu) via Cron Job通过 Cron Job 在 VM (Ubuntu) 中运行 Python 脚本
【发布时间】:2021-11-21 01:35:27
【问题描述】:

我有一个问题,我想在我的 VM 中运行(每天下午 2 点)Python 代码,但 cronjob 没有按预期工作。

这是我在crontab -e 中尝试过的代码:

#1    
0 14 * * * /home/try/myf.py
#2
0 14 * * * /home/try/miniconda3/bin/python /home/try/myf.py
#3
0 14 * * * python /home/try/myf.py
#4
0 14 * * * /home/try/miniconda3/bin/python myf.py

所有这些代码都不适合我。谁能解释或建议我如何编写代码?如果可能,如何查看这个 cronjob 的日志?

【问题讨论】:

  • 你试过“which python”吗?
  • 是的,我是。这是输出 /home/try/miniconda3/bin/python
  • 你在服务器上的用户是什么?你是根吗?
  • 我怎么知道我是不是根?你能解释一下……请……
  • 如果您在服务器上登录,您的用户名应该是 user@your-server-ip 以防非 root 用户,否则应该是 root@your-server-ip。不要在此处粘贴您的 IP

标签: linux google-cloud-platform cron virtual-machine


【解决方案1】:

#2 是正确的,它适用于 ubuntu 实例上的 miniconda3。
将 myf.py 中的代码替换为print('hello world') 并尝试运行 /home/try/miniconda3/bin/python /home/try/myf.py 手动。
如果它有效,那么这是一个 crontab 问题。 有一个很棒的故障排除指南 here
如果它不起作用,那么您的 miniconda 安装已损坏。尝试按照these instructions 重新安装它。安装后记得关闭终端重新打开,否则即使安装成功也无法使用。

【讨论】:

    【解决方案2】:

    清单:

    1. 检查 cron 守护进程是否正在运行? (ps aux | grep cron) 或service cron status Service cron startrestart

    2. 检查 cron 是否工作? contab -e 并添加以下行

              • ( /bin/date && /etc/echo "cronjob 工作" ) >> /tmp/file

      然后cat /tmp/file

    还有其他详细解释检查和测试的帖子,参考那些

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 2014-05-16
      • 2019-07-23
      • 2019-12-24
      • 2023-04-09
      相关资源
      最近更新 更多