python自动运行 - shell定时任务




如何定期运行python后台进程 (2)

我有一个相当轻的脚本,我想每隔5个小时左右定时在后台运行。 脚本通过几个不同的网站,扫描他们的新材料,并从他们抓取.mp3文件或喜欢YouTube上的歌曲根据他们的内容。 我想用这个程序来实现一些我不确定如何获得的东西:

  • 让程序每5个小时运行一次 - 我不熟悉系统级定时操作。
  • 让程序高效地在后台运行 - 我希望这些“更新”在用户不知情的情况下发生。
  • 让程序在启动时激活 - 我知道如何设置为用户,但我不知道如何将这样的配置添加到python文件,如果这是可能的。 请记住,这将是一个简单的.py脚本 - 我不编译成可执行文件。

该程序主要是考虑到OSX和其他基于Unix的系统。 任何关于实现这些目标的建议?


让程序每5个小时运行一次 - 我不熟悉系统级定时操作。

对于nix cron来说是完成这个任务的默认解决方案

让程序高效地在后台运行 - 我希望这些“更新”在用户不知情的情况下发生。

使用cron程序将在服务器的后台运行。 用户不应该受到它的不利影响。 如果用户加载一个页面查看你已经刮的MP3。 然后在你的脚本运行/保存数据到数据库用户点击刷新中,新的MP3可能会出现,我不知道这是你想到的“没有用户知道”

让程序在启动时激活 - 我知道如何设置为用户,但我不知道如何将这样的配置添加到python文件,如果这是可能的。 请记住,这将是一个简单的.py脚本 - 我不编译成可执行文件。

我很确定cron条目将在重新启动后持续存在(我不是100%),请确保cron守护进程在启动时启动


如果你的脚本不需要经常执行,听起来好像没有,我建议你设置一个cron作业。

在典型的Linux机器上,您可以通过以下方式编辑您的crontab file

$ crontab -e

这将在你的标准编辑器中打开你的crontab,并在你完成后为你安装crontab文件(即你保存它)

典型的crontab命令如下所示:

# m h  dom mon dow   command
 15  0   *   *   *    /bin/bash /home/yourself/bin/dump_my_tables.sh

这一行将在00:15每天执行dump_my_tables.sh 。 你的脚本需要像下面这样:

0  */5  *  *  *   /usr/bin/python /home/yourself/bin/scrape_the_web.py

注意:

  • 时间是机器的当地时间(!)
  • 某些cron版本不接受*/5语法,您必须手动指定希望排定脚本的小时数,例如0,5,10,15,20
  • 你可能想重定向输出,但是它不在这个答案的范围之内






cron