【问题标题】:Run 2 python scripts using crontab使用 crontab 运行 2 个 python 脚本
【发布时间】:2018-03-28 13:29:41
【问题描述】:

这是我的第一个 crontab 文件。它可以很好地执行logDHT.py 但是如果我只是在我的 crontab 的最后一行添加这行代码,它会起作用吗? 我要添加的代码行:

* * 1 * * pi /usr/bin/python /home/pi/Sensors_Database/checkDB.py 

我的第一个 Crontab:

# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

1 * * * * pi /usr/bin/python /home/pi/Sensors_Database/logDHT.py

我的目标是在不同时间运行 2 个脚本,logDHT.py 每分钟运行一次,checkDB.py 每天运行一次。

【问题讨论】:

  • 你似乎知道你想要什么——你似乎知道如何去做——你的问题到底是什么?
  • 这个符号 (;),一些消息来源说它需要在 crontab 的两行代码之间放置 (;)。我的 Pi 现在在家,我不能只输入并尝试代码,所以我问这个问题
  • 我不知道是什么阻止了您对其进行测试 - 但 crontab 的工作方式是新计划任务中的每一行。您不需要分号(尽管您可以使用一个分号来连续运行多个脚本,这不是您想要的)

标签: python cron


【解决方案1】:

pi /usr/bin/python /home/pi/Sensors_Database/checkDB.py 如果您从 CLI 运行脚本,您通常如何运行它?

这是我自己的 crontab 中的一个示例:

0 * * * * ~/.duckdns/duck.sh >/dev/null 2>&1
0 * * * * python ~/flagstatus.py >/dev/null 2>&1

如您所见,第一行是 bash 脚本,第二行是 python 脚本。如果我要从命令行运行我的flagstatus.py 脚本,这正是我要输入的内容:python ~/flagstatus.py,这正是 crontab 的内容。最后的 >/dev/null 2>&1 部分只是告诉 cron 我不想要任何输出(即没有日志等)。它是可选的,仅取决于您是否希望 cron 创建有关脚本输出的日志/发送消息。

【讨论】:

  • 不,这不是我在 CLI 上运行脚本的正常方式。 google 说 /usr/bin/python 代表我们使用的 python 版本。我使用了python 2。所以第一行末尾不需要(;)?谢谢你的建议:)
  • 还有一点,如何查看脚本执行的日志?
  • sudo cat /var/log/cron
猜你喜欢
  • 2021-09-10
  • 2015-10-05
  • 2017-12-16
  • 1970-01-01
  • 2016-06-18
  • 2017-11-11
  • 2017-12-12
  • 2022-01-05
  • 2017-11-20
相关资源
最近更新 更多