【问题标题】:Command not found in sh script running from crontab [duplicate]在从 crontab 运行的 sh 脚本中找不到命令 [重复]
【发布时间】:2021-01-14 23:57:26
【问题描述】:

我有一个运行的 sh 文件:python -m grafana_backup.cli save --config $settings_file。

我从 crontab 运行此文件,运行 .sh 文件,但出现此错误:python: command not found。

crontab 中的 shell 是 SHELL=/bin/bash,.sh 文件中的 shell 是 #!/bin/bash

【问题讨论】:

  • 您是否使用某种虚拟环境来运行python?如果是这样,您可能希望在调用 python 之前在 shell 脚本中获取激活脚本。
  • 行得通!就是这个问题,谢谢。

标签: python shell cron grafana


【解决方案1】:

做:

  1. 'which python3' - 可能的结果是 /usr/bin/python3
  2. 将 #1 的结果添加到 crontab 命令中

一般建议:
对您的 sh 脚本正在使用的每个资源使用 完整路径

【讨论】:

  • 作为 SHELL 变量?
  • 没有。只需在 sh 脚本中将 python 替换为 /usr/bin/python3(假设您的 python 在 usr/bin 下)
  • 可能会比激活虚拟环境(或 conda env)更复杂,如果 python 的路径不在默认 @987654324 中,这是很可能的情况@ 在 cron 环境中。
  • 我现在遇到的问题是:/usr/bin/python3: No module named grafana_backup 似乎使用python的完整路径也改变了我当前的路径,我无法访问该模块
猜你喜欢
  • 2017-11-27
  • 2020-11-04
  • 1970-01-01
  • 2020-09-01
  • 2011-09-21
  • 2023-02-18
  • 1970-01-01
  • 2023-03-02
  • 2012-06-06
相关资源
最近更新 更多