Tập lệnh python của tôi không chạy dưới crontab của tôi.Crontab không chạy tập lệnh python của tôi
tôi đã đặt này trong kịch bản python ở đầu trang:
#!/usr/bin/python
Tôi đã cố gắng làm điều này:
chmod a+x myscript.py
Thêm vào crontab -e tôi:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
* * * * * /home/me/project/myscript.py
Tệp/var/log/cron của tôi cho biết:
Sep 21 11:53:02 163-dhcp /USR/SBIN/CROND[2489]: (me) CMD (/home/me/project/myscript.py)
Nhưng tập lệnh của tôi không chạy vì khi tôi kiểm tra cơ sở dữ liệu sql của mình, không có gì thay đổi. Nếu tôi chạy nó trực tiếp vào thiết bị đầu cuối như vậy:
python /home/me/project/myscript.py
tôi nhận được kết quả chính xác.
Đây là 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()
EDIT: mỗi ý kiến: Vâng, /usr/bin/python
tồn tại. Tôi cũng có thể chạy tập lệnh python trực tiếp bằng cách sử dụng chỉ /home/me/project/myscript.py
. /usr/bin/python /home/me/project/myscript.py
hoạt động. Vì vậy, tôi không tin rằng đây là nguyên nhân?
whats in the script? Nó có phụ thuộc vào môi trường nào không? – tMC
Có, tôi nghĩ chúng ta cần xem bên trong myscript.py –
Đặt biến MAILTO cho tên người dùng của bạn. Sau đó, bạn sẽ nhận được một số thông báo lỗi trong thư của bạn mà có thể cung cấp một đầu mối. – unutbu