从 shell 脚本 cron 调用 python 脚本

2023-12-30

我有一个 shell 脚本 cron,它从同一目录调用 python 脚本,但是当这个 cron 执行时,我没有从 python 脚本中获得预期的输出,当我手动执行它时,我的 python 脚本的输出是预期的。

我提供了 python 脚本路径,例如 /usr/bin/python room_wise.py

并在 shell 脚本中给出了所有 shell 参数,但仍然没有使用 shell 脚本 cron 调用我的 python 脚本。

有人能帮我一下吗?


cron 作业中的大问题是绝对目录位置和相对目录位置。您需要首先将相对路径拆分出来,如图所示。

#!/usr/bin/env bash
dirName=`dirname $0`
baseName=`basename $0`
arg1=$1
arg2=$2
cd ${dirName} && python ./room_wise.py arg1 arg2

然后使用 crontab -e 将项目添加到您的用户 cron 作业并添加以下内容:

PATH=/usr/bin:/bin:/sbin
30 00 * * * /my/directory/containing/room_wise_py.sh arg1 arg2 > /my/directory/containing/output.log 2>&1

您可以看到我添加了 PATH,因为这有时可能是某些操作系统发行版的问题。此外,该脚本与 bash 脚本存在于同一目录中,或者如果您修改 bash 脚本以将目录名包含为 $1,则可以将目录位置作为参数传递。

您还可以看到我已将所有输出定向到日志文件。这是一个非常好的主意,因为如果出现问题,有时很难调试进程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 shell 脚本 cron 调用 python 脚本 的相关文章

随机推荐

  • 嵌套集合、php 数组和转换

    我需要将我的嵌套集结构 mysql 转换为这个空间树的json 1 http blog thejit org wp content jit 1 0a examples spacetree html http blog thejit org
  • 从后台线程更新 BindingList<>?

    我想知道如何使用 WPF 中的 Dispatcher 从另一个线程安全地更新我的 BindingList 集合 我也愿意接受其他解决方案 非常感谢 卡韦 我更喜欢安排一个Task到 UI 线程 您可以通过调用获取 UI 线程调度程序Task
  • SpecFlow:ClassInitialize 和 TestContext

    首先 我是 SpecFlow 的新手 我有一个功能文件 我已经 想要使用 MSTest 自动运行它作为功能测试 涉及完全设置的服务器 数据访问 为此 我必须使用 SpecFlow 的 Given 块中的数据配置服务器 然后启动它 我还必须将
  • 是否可以强制 Hibernate 嵌入实体?

    在我的用例中 我想 Embedded一类C在一个实体中 另一个实体指的是C with OneToMany协会 因此C注释为 Entity 我知道这似乎是糟糕的设计 但我相信这对我的情况来说非常有意义 是否可以强制 Hibernate 嵌入实
  • Jest 测试中的“requestAnimationFrame”polyfill 错误

    升级到 React 后运行 Jest 单元测试时出现此错误 React depends on requestAnimationFrame Make sure that you load a polyfill in older browser
  • 从中心和半径创建 SqlGeography 多边形圆

    我想使用 C 在 sql server 2008 地理字段中保存一个圆圈 在 C 中 我有纬度 经度和半径 但我找不到一种方法来计算代表圆的多边形并创建一个SqlGeography从中 我尝试使用以下函数来创建多边形 private Lis
  • 使用数据收集器 UDC 的替代品?

    由于 UDC 是不再支持 http wiki eclipse org UDC或者 Eclipse 的一部分 我想知道是否有替代品 我想获得有关我们的用户组如何实际使用 Eclipse 的更多信息 以便积极主动地尝试改善他们的环境 我想收集的
  • 使用小米5 MIUI 8 Android Studio进行调试

    我无法从 Android Studio 启动应用程序 当我单击 运行 时 我选择我的设备 并且出现以下消息 但事实并非如此 该应用程序未安装在设备中 在 运行 控制台中 出现以下内容 04 22 15 53 08 Launching app
  • WScript.Shell Exec 的实时控制台输出

    我花了一天的大部分时间寻找解决方案 我开始认为这可能无法满足我的要求 我的基本设置是运行从 Excel VBA 代码调用的 vbscript vbs vba 代码必须继续运行并保持 vbscript 运行 但会不时使用以下命令对其进行监视E
  • 每次进行更改时回收应用程序池

    我制作了一个多语言网站 其中在同一网站上包含 4 个域 因此也包含 4 种不同的语言和网站树 但是 每次我需要发布对网站的新更改或其他更改 例如更新模板 脚本等 时 我都必须回收应用程序池 以使更改在以访问者身份查看网站时显示 我该如何解决
  • 如何在 athena 上的字符串数据类型上提取月份名称

    SELECT sales invoice date MONTH DATE TRUNC month CASE WHEN TRIM sales invoice date THEN DATE 1999 12 31 ELSE DATE PARSE
  • 复制表更改 1 列的值并将其插入到同一个表中

    标题基本上概括了所有内容 以及我在这里想要完成的任务 更多信息 我得到了一个有 4 列的表格 我需要它的精确副本 但只需要更改一列的值 假设该列名为客户编号 即 123456 其他值并不重要 如何复制整个表并将客户编号更改为 123457
  • TPL 数据流:将传入集合展平为顺序项目

    我正在使用 TPL 数据流构建一个应用程序 实际上我有以下问题 我有一个变换块var tfb1 new TranformBlock
  • 在 Scala 中扫描巨大的 JSON 文件以获取可反序列化的数据

    我需要能够处理大型 JSON 文件 在文件中迭代 流式传输时从可反序列化的子字符串实例化对象 例如 我没有使用 JSON 完成此操作 我希望有人能为您提供交钥匙解决方案 而是使用 XML 完成此操作 这里是一种处理方法 它基本上是一个借助流
  • 我可以重新解释 constexpr 函数的参数吗?

    我想编写一个在编译时求值的函数 它需要一个指向 4 字节数组的指针 并输出一个与该数组具有相同位模式的 int 所以我想出了 constexpr int f const char p return reinterpret cast
  • 在java中计算日期/时间差[重复]

    这个问题在这里已经有答案了 我想要计算2个日期之间的差异以小时 分钟 秒为单位 我的代码有一个小问题 String dateStart 11 03 14 09 29 58 String dateStop 11 03 14 09 33 43
  • 如何显示来自 PHP 的 JavaScript 警报?

    我不用 PHP 编写代码 但我有一个从网上下载的表单 它工作得很好 我想做的是在这里添加一些代码 可以启动 JS 脚本 简单的警报框 说 谢谢您的表单已提交 此 mailer php 文件收到表单后
  • 循环位 C

    我试图循环遍历 unsigned char 的位 但我不确定从哪里开始 最终 我将对这些位执行其他按位操作 例如 和 xor 等 可以通过多种方式循环位 当您移动值时 您可以执行破坏性循环 并测试初始位或最终位 具体取决于您想要枚举位的顺序
  • Airflow - 无法在 Kubernetes Pod Operator 任务中对资源使用 jinja 模板

    Airflow 无法在 Kubernetes Pod Operator 任务中对资源使用 jinja 模板 能够使用 jinja 模板作为环境变量 镜像 但无法使用资源来指定 CPU 和内存 请求和限制 For apache airflow
  • 从 shell 脚本 cron 调用 python 脚本

    我有一个 shell 脚本 cron 它从同一目录调用 python 脚本 但是当这个 cron 执行时 我没有从 python 脚本中获得预期的输出 当我手动执行它时 我的 python 脚本的输出是预期的 我提供了 python 脚本路