Mój skrypt python nie działa pod moim crontab.Crontab nie działa mój skrypt python
umieściłem to w skrypcie Pythona na górze:
#!/usr/bin/python
Próbowałem w ten sposób:
chmod a+x myscript.py
Dodano do mojego crontab -e:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
* * * * * /home/me/project/myscript.py
Mój plik/var/log/cron mówi:
Sep 21 11:53:02 163-dhcp /USR/SBIN/CROND[2489]: (me) CMD (/home/me/project/myscript.py)
Ale mój skrypt nie działa, ponieważ po sprawdzeniu bazy danych sql nic się nie zmieniło. Gdybym go uruchomić bezpośrednio w terminalu tak:
python /home/me/project/myscript.py
uzyskać poprawny wynik.
To 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: za komentarze: Tak, /usr/bin/python
istnieje. Mogę również uruchomić skrypt Pythona bezpośrednio przy użyciu tylko /home/me/project/myscript.py
. /usr/bin/python /home/me/project/myscript.py
działa. Więc nie sądzę, że to jest powód?
co w scenariuszu? Czy to zależy od środowiska? – tMC
Tak, myślę, że musimy zobaczyć wewnątrz twojego myscript.py –
Ustaw zmienną MAILTO na swoją nazwę użytkownika. Wtedy otrzymasz wiadomość o błędzie, która może stanowić wskazówkę. – unutbu