我的 Python 脚本在 crontab 下没有运行。
我已经在 Python 脚本的顶部添加了以下内容:
#!/usr/bin/python
我已经尝试了这个:
chmod a+x myscript.py
我添加到了我的crontab -e
:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
* * * * * /home/me/project/myscript.py
我的 /var/log/cron 文件显示:Sep 21 11:53:02 163-dhcp /USR/SBIN/CROND[2489]: (me) CMD (/home/me/project/myscript.py)
但是我的脚本没有运行,因为当我检查我的SQL数据库时,没有任何变化。如果我直接在终端中运行:
python /home/me/project/myscript.py
我得到了正确的结果。
这是myscript.py
:
#!/usr/bin/python
import sqlite3
def main():
con = sqlite3.connect("test.db")
with con:
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS testtable(Id INTEGER PRIMARY KEY, Name TEXT)")
cur.execute("INSERT INTO testtable(Name) VALUES ('BoB')")
cur.execute("SELECT * FROM testtable")
print cur.fetchall()
if __name__ == "__main__":
main()
根据评论:是的,/usr/bin/python
存在。 我也可以直接使用 /home/me/project/myscript.py
运行 python 脚本。 /usr/bin/python /home/me/project/myscript.py
可以工作。 所以我不相信这是原因?
/home/me/project/myscript.py
运行它是否有效(不需要在开头加上python
,因为它是通过cron运行的)。 - Danicatest.db
文件在你的主目录里还是其他地方?cron
任务是从你的主目录运行的,所以你可能需要更改目录或使用完整路径名来定位数据库。 - twalberg