在MacOS上每小时执行一次Python脚本 目标
我有一个用python编写的脚本在MacOS上每小时执行一次Python脚本 目标,python,macos,cron,cron-task,Python,Macos,Cron,Cron Task,我有一个用python编写的脚本 连接到数据库 插入一些假数据 我的目标是每小时执行一次脚本 database.py CronniX 我做了一些研究,人们建议使用一系列应用程序来实现这一点 因此,我尝试下载/安装了CronniX 创建任务设置计划并运行它 它一直挂在上执行… 任务到黎明 除此之外,我还尝试了一次又一次直到黎明的任务 创建任务设置计划并运行它 结果 我的数据库里似乎没有任何东西,甚至说有35次成功执行。它所做的只是在Xcode窗口内弹出我的database.py 终点站
database.py
CronniX 我做了一些研究,人们建议使用一系列应用程序来实现这一点 因此,我尝试下载/安装了CronniX 创建任务
设置计划
并运行它
它一直挂在上执行…
任务到黎明 除此之外,我还尝试了一次又一次直到黎明的任务 创建任务
设置计划
并运行它
结果
我的数据库里似乎没有任何东西,甚至说有35次成功执行。它所做的只是在Xcode
窗口内弹出我的database.py
终点站 我运行了
python database.py
,它工作得非常好,并且插入了数据
我在想,这是许可问题,但我已经这么做了
sudo chmod a+x数据库.py
我错过了什么?实现这一目标的更好方法是什么
如有任何建议/提示,将不胜感激 您可以使用crontab,我想它已经安装在OSX上了 打开终端并运行
crontab-e
。这将打开一个编辑器。你可以在那里打字
@hourly/usr/bin/python database.py
您也可以使用crontab:
每小时:
crontab 0 * * * * /path/to/script
每分钟:
crontab * * * * * /path/to/script
要查看您的crontab,请执行以下操作:
crontab -l
要查看更多选项,请执行以下操作:
man crontab
根据Rafael Santos的建议,您可以像这样简单地使用cron: 您可以键入:
crontab-e
并添加以下行:
0 * * * * /path/to/your/script
它将每小时运行您的脚本。或者,如果您正在使用Django,您可以使用它来做同样的事情。(它有一个crontab类型)运行一段时间,求和+1h,然后每5s验证一次电流,使用旧的时间+1h
import datetime
import time
mytime= datetime.datetime.now()
currenttime= str(datetime.datetime.time(mytime))
currenttime = currenttime.split(':')
data = list(currenttime)
data[0] = str(int(data[0])+1) # [0] is the first part of 00:00:00, and +1 is the sum for the hour part
print data
print currenttime
while True:
mytime= datetime.datetime.now()
currenttime= str(datetime.datetime.time(mytime))
currenttime = currenttime.split(':')
# Note: if want test code, delete the while and time.sleep()
time.sleep(5)
if data==currenttime:
exit(0)
您应该将其添加为函数,因为我的代码是丑陋的xDD您是否尝试了cron?有时候简单的解决方案效果最好,而您已经在使用终端了……如果我使用cron,我如何设置/配置它每60分钟运行一次。请告知,在此期间,我将阅读
cron
。谢谢你的建议。用python就可以了。使用一个线程并将其休眠一个小时。/database.py
在没有python的情况下从终端工作吗?和/usr/bin/python database.py
@cricket\u 007:如果我全部用python做,我必须打开终端,然后键入python database.py
。我在找一个能在后台自动完成的东西。如果这里遗漏了什么,请纠正我。我可以把它缩短到一分钟进行测试以验证它是否有效吗?这行得通吗?crontab*****/path/to/script
?酷,现在就试试。谢谢。:)当我尝试crontab 0****/path/to/script
时,我得到了crontab:0:没有这样的文件或目录
,这是不推荐使用的语法吗?@BigMoney您想先运行crontab-e,以便为crontab文件获得一个很好的编辑窗口。
import datetime
import time
mytime= datetime.datetime.now()
currenttime= str(datetime.datetime.time(mytime))
currenttime = currenttime.split(':')
data = list(currenttime)
data[0] = str(int(data[0])+1) # [0] is the first part of 00:00:00, and +1 is the sum for the hour part
print data
print currenttime
while True:
mytime= datetime.datetime.now()
currenttime= str(datetime.datetime.time(mytime))
currenttime = currenttime.split(':')
# Note: if want test code, delete the while and time.sleep()
time.sleep(5)
if data==currenttime:
exit(0)