【问题标题】:crontab in mac is not working properly for python scriptmac 中的 crontab 对于 python 脚本不能正常工作
【发布时间】:2021-05-26 02:05:56
【问题描述】:
crontab -l:

(base) yan@0053 notebooks % crontab -l
* * * * * /opt/anaconda3/bin/python /Users/yan/Documents/pol/coop/analysis/test.py
* * * * * echo "hello" >>/Users/yan/Documents/pol/coop/analysis/hello.txt

Does NOT work in crobtab: 
* * * * * /opt/anaconda3/bin/python /Users/yan/Documents/pol/coop/analysis/test.py

Does work in crontab:
* * * * * echo "hello" >>/Users/yan/Documents/pol/coop/analysis/hello.txt


BUT this python script works in Terminal, and i have the output file saved in the folder: 
(base) yan@0053 notebooks % /opt/anaconda3/bin/python /Users/yan/Documents/pol/coop/analysis/test.py

我想知道如何在 crontab 中调试 python.py。我无法在终端中手动运行它...

我的 test.py:

import pandas as pd
df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
                   'mask': ['red', 'purple'],
                   'weapon': ['sai', 'bo staff']})
df.to_csv('ouoput.csv', index=False)

基本上,不应该是 test.py 的问题,因为我只是修改了 test.py 并且只包含了一行 print('y')。它可以手动工作,但不能在 crontab 中工作

print('y')

https://blog.bejarano.io/fixing-cron-jobs-in-mojave/解决了这个问题

【问题讨论】:

  • 你的 test.py 是否创建输出?如果是这样,那最终会在哪里......?
  • 明确一点:df.to_csv('/Users/yan/Documents/polarr/coop/analysis/ouoput.csv', index=False) 有效吗?
  • df.to_csv('/Users/yan/Documents/polarr/coop/analysis/ouoput.csv', index=False) 工作? --- 是的,工作。保存了一个 ouoput.csv @Roadowl
  • 你怎么知道它不起作用?文件ouoput.csv 应该在您的主目录中创建。

标签: python cron


【解决方案1】:

在 MacOS 上,CronTab 自 10.4 起已被弃用。不支持。我建议从 Crontab 转移到 launchd。简而言之,您可以按照说明创建 .plist 文件。有一个名为 LaunchControl 的优秀小应用程序,它对运行后台系统脚本和进程非常有帮助。强烈推荐,因为语法和权限/安全设置可能很棘手。此外,还有这篇很棒的小文章“如何使用 launchd 在 macOS 中运行服务”。

【讨论】:

  • 谢谢@nwood21。我很好奇 echo 在 crontab 中确实有效,为什么 python 脚本在 crontab 中无效?
  • 嗨 nwood21,我发现了这个blog.bejarano.io/fixing-cron-jobs-in-mojave,这个问题得到了解决
  • 有关 Mac 中 cron 的重要信息。虽然读到这个:“警告:这不是一个好主意,安全方面,如果恶意行为者可以创建 cron 作业或编辑作为 cron 作业运行的脚本,他或她也将拥有全磁盘访问权限。监控系统安装的 cron 作业手动或使用诸如 KnockKnock 之类的工具并谨慎操作。”我想你会想要小心那些不在 App Store 上安装可以运行恶意代码的脚本的第三方应用程序。
猜你喜欢
  • 2018-05-06
  • 2013-09-15
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多