我写了一个简单的脚本,从网上解析一些东西并通过电子邮件发送给我。非常简单。但是我开始意识到实现这个实际上要困难得多。
我真正想做的就是每天运行一次这个脚本。
我已经探索过使用Google App Engine,但它不喜欢使用ssl登录我的Gmail发送电子邮件的smtplib。
我正在考虑使用Heroku,但这似乎很简单。
我尝试使用我的覆盆子pi,但是当我退出ssh时,我不确定脚本是否仍在运行。我考虑在cron作业上运行脚本,但我不确定这是一个优雅的解决方案。
我考虑从我的日历中运行applescript,但我不确定如果我的计算机已关闭和/或离线会发生什么。
我的问题是:这里有简单,优雅,简单的解决方案吗?
答案 0 :(得分:1)
从会话(./script.py或python script.py)启动脚本时,断开连接时停止运行。如果你想以任何理由以这种方式运行脚本,我建议使用tmux。
如果您使用Raspian或其他基于Debian的发行版为您的Pi:
$ apt-get install tmux
$ tmux
# disconnect from your tmux session with pressing CTRL+B and (after that) D
# to reattach to your session later, use
$ tmux attach
我建议使用cron。如果您想在特定时间(例如每天凌晨1点)运行,请在/etc/cron.d/
中添加这样的文件,如下所示:
$ echo "0 1 * * * python /path/to/your/script.py > /dev/null 2>&1" > /etc/cron.d/script-runner
# and don't forget to make it executable
$ chmod +x /etc/cron.d/script-runner
Wikipedia对格式(以及@hourly和@daily等快捷方式)有一个很好的解释。
如果您不关心它何时运行,您可以将脚本放入/etc/cron.daily/
。不要忘记chmod +x
使其可执行。
如果您不想在其中一台计算机上运行它,您还可以在其中一台uberspaces服务器上获取shell。你可以支付任何你想要的东西(最低1欧元/月),你可以在一个10GB存储空间的Linux机器上获得一个shell(第一个月可以免费测试,当你不支付时自动取消,没有附加条件) 。我确信有很多其他类似的服务,我只是提到它,因为它是一个很好的支持。您还可以获得域(..uberspace.de)并可以从服务器发送邮件(例如,使用mail
)。所以不需要使用Gmail帐户。
编辑:重读“python”部分。将所有内容更改为.py。在脚本中使用#!/usr/bin/env python3
(或2.7)或通过python scriptname.py
启动脚本。