使用cron运行pymongo脚本时遇到的问题
我正在运行一个简单的Python脚本,用来向MongoDB发送数据。
#!/usr/bin/env python
import sys
import time
from datetime import datetime
import pymongo
from pymongo import Connection
today = { 'date and time' : datetime.today() }
connection = Connection()
db = connection.tests
collection = db.times
collection.insert(today)
我想用cron来每分钟定时执行这个脚本。我已经使用crontab来设置了这个。
* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py
我可以在正确的目录下通过 python timetest.py
命令完美地执行这个程序;但是这个程序还是没有自动运行。我觉得我离成功不远了,有谁能帮我一下吗?
1 个回答
1
很可能你的cron环境和你用户的环境不一样。在cron中,你可以在crontab里设置路径变量,像这样:
PATH=$PATH:/usr/bin
* * * * * /Users/MyUser/XX/YY/ZZ/timetest.py
或者你可以直接在你的脚本中调用python的可执行文件:
* * * * * /usr/bin/python /Users/MyUser/XX/YY/ZZ/timetest.py
或者你可以在你的脚本开头设置一个shebang行,明确指定python的可执行文件(如果你使用虚拟环境,这样做可能不太好):
#!/usr/bin/python
...