Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每天运行一次Python脚本(访问internet)的最简单方法?_Python - Fatal编程技术网

每天运行一次Python脚本(访问internet)的最简单方法?

每天运行一次Python脚本(访问internet)的最简单方法?,python,Python,我写了一个简单的脚本,从网上解析一些东西并通过电子邮件发送给我。很简单。但我开始意识到,实现这一点要比实际情况困难得多 我真正想做的就是每天运行一次这个脚本 我曾尝试过使用谷歌应用程序引擎,但它不喜欢使用ssl登录我的gmail发送电子邮件的smtplib 我正在考虑使用Heroku,但对于这么简单的东西来说,这似乎是一个很大的工作 我尝试使用我的raspberry pi,但我不确定退出ssh时脚本是否仍在运行。我考虑过在cron作业上运行scrip,但我不确定这是一个优雅的解决方案 我考虑过从

我写了一个简单的脚本,从网上解析一些东西并通过电子邮件发送给我。很简单。但我开始意识到,实现这一点要比实际情况困难得多

我真正想做的就是每天运行一次这个脚本

我曾尝试过使用谷歌应用程序引擎,但它不喜欢使用ssl登录我的gmail发送电子邮件的smtplib

我正在考虑使用Heroku,但对于这么简单的东西来说,这似乎是一个很大的工作

我尝试使用我的raspberry pi,但我不确定退出ssh时脚本是否仍在运行。我考虑过在cron作业上运行scrip,但我不确定这是一个优雅的解决方案

我考虑过从我的日历中运行一个,但我不确定如果我的计算机关闭和/或脱机会发生什么


我的问题是:这里有一个简单、优雅、简单的解决方案吗?

当您从会话(./script.py或python script.py)启动脚本时,它会在断开连接时停止运行。如果出于任何原因希望以这种方式运行脚本,我建议使用tmux

如果您的Pi使用Raspian或其他基于Debian的发行版:

$ 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
对格式(以及@hourly和@daily等快捷方式)有很好的解释

如果您不关心它的确切运行时间,您可以将脚本放入
/etc/cron.daily/
。不要忘记使用
chmod+x
使其可执行

如果你不想在你的一台机器上运行它,你也可以在一台服务器上得到一个shell。您可以支付任何您不想支付的费用(最低1欧元/月),并且您可以在一个具有10GB存储的linux机箱上获得一个shell(第一个月是免费测试的,当您不支付时会自动取消,不附带任何条件)。我敢肯定还有很多其他类似的服务,我只是提到它,因为它是一个很便宜的一个很好的支持。您还可以获得一个域(…uberspace.de),并可以从服务器发送邮件(例如,使用
邮件
)。所以不需要使用gmail帐户


编辑:覆盖“python”部分。将所有内容更改为.py。要么使用
#/在脚本中使用usr/bin/env python3
(或2.7),或通过
python scriptname.py

启动脚本使用raspberry pi和crontabGAE不喜欢smptplib?想解释一下吗?Heroku是最简单的。免费软件可以设置为每天运行一次您的脚本,您可以免费使用它向自己发送电子邮件。1。使用Raspi和tmux确保在退出ssh会话时进程保持运行。2.您可以使用GAE从应用程序帐户发送电子邮件:我相信您每24小时可以收到100封免费电子邮件GAE不喜欢starttls:
server=smtplib.SMTP('SMTP.gmail.com',587)#端口465或587 server.ehlo()server.starttls()
,我不想重写我的应用程序……谢谢。cron看起来很简单。我很好奇——如果我通过笔记本电脑安排了一个cron作业,但它关闭或离线,会发生什么?我一打开它,它就会运行吗?想想看,我觉得我的电子邮件实现有点像黑客。我不希望在我的代码中用纯文本写出我的gmail密码。。。如何从服务器直接发送电子邮件?在命令行上(或在bash脚本中),您只需使用mail:
mail-s
,然后键入文本。要完成并发送邮件,请在新行中键入a
。要在脚本中使用它,您可以使用:
mail-s
和python一起使用,只需查看一下(或相应的2.7版本)。不过,请注意,您不能通过拨号连接发送邮件,因为这些邮件几乎会被任何其他邮件服务器列入黑名单。