在从 crontab 运行的 sh 脚本中找不到命令 [重复]
Posted
技术标签:
【中文标题】在从 crontab 运行的 sh 脚本中找不到命令 [重复]【英文标题】:Command not found in sh script running from crontab [duplicate] 【发布时间】: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 脚本中获取激活脚本。 行得通!就是这个问题,谢谢。 【参考方案1】:做:
-
'which python3' - 可能的结果是 /usr/bin/python3
将 #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的完整路径也改变了我当前的路径,我无法访问该模块以上是关于在从 crontab 运行的 sh 脚本中找不到命令 [重复]的主要内容,如果未能解决你的问题,请参考以下文章