gpt4 book ai didi

来自 Cron 的 Python 脚本

转载 作者:太空狗 更新时间:2023-10-30 03:04:03 25 4
gpt4 key购买 nike

我已经用 Python 完成了一个程序,我打算让它每隔 n 小时从我的 RPi 运行一次。这将是我第一次以这种方式运行此类程序/脚本,我想知道在将脚本添加到我的 crontab 之前是否有任何我应该知道/已经写入脚本的内容?

我也不确定 crontab 中的这样一个条目会是什么样子。我会写这样的东西吗:

* 2 * * * pi `python /home/pi/Desktop/myProg.py`

在命令周围加上反引号,或者我会从我从 crontab 调用的 shell 脚本中启动 myProg.py 吗?

* 2 * * * pi /home/pi/Desktop/launchMyProg.sh

此外,我在程序中有一些 print 语句,我注释掉了它们,因为它们主要用于在编写过程中进行调试,但转念一想,将这些语句用于调试信息对我来说很有用但指向 /var/log/messages 或我可以使用 tail -f/var/log/messages 命令监视的其他日志文件。

我该怎么做呢?谢谢。

最佳答案

您走在正确的轨道上。要每 n 小时触发一个 python 脚本,请执行以下操作:

* */n * * * python /home/pi/Desktop/myProg.py

就是这样。确保您正在编辑 sudo 级别的 crontab,它可以通过 sudo crontab -e 访问。

您的代码实际上会让脚本在每天凌晨 2 点运行 - 它在技术上说“每当小时等于 2 时运行”。 * */n * * * 表示“只要小时可以被 n 整除就运行”。可以在此处找到有关 crontab 的重要资源:Schedule tasks on Linux using crontab

记录输出也很容易。如果您的桌面上有一个名为 myLog.log 的日志文件,您可以将 >>/home/pi/Desktop/myLog.log 添加到 crontab 条目的末尾。这将使条目看起来像这样:

* */2 * * * python /home/pi/Desktop/myProg.py >> /home/pi/Desktop/myLog.log

编辑(感谢@Iamreck):输出到文件的另一个选项是使用 sys.stdout。这将实现相同的目标。为此,请将以下内容添加到您的 Python 脚本中:

import sys
sys.stdout = open("myLog.log","w")
sys.stderr = open("myLogErr.log","w")
print "stdout test"

执行此操作时,您还必须将工作目录更改为桌面,这可以通过位于 this SO post 的最佳答案来完成。

关于来自 Cron 的 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17096530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com