2017-05-07 84 views
0

我想讓crontab每分鐘執行一次python腳本,但看起來像crontab根本不執行腳本。Python:python-crontab不執行

這是我做crontab作業的python文件。

schedule.py

from crontab import CronTab 


def main(): 
    my_cron = CronTab(user='jelly') 
    cmd = '.venv/bin/python Users/jelly/PycharmProjects/test/writeDate.py' 
    job = my_cron.new(cmd, comment='test') 
    job.minute.every(1) 

    my_cron.write() 
    print(my_cron.render()) 


if __name__ == "__main__": 
    main() 

這消息時我跑schdule.py

* * * * * .venv/bin/python Users/hyun/PycharmProjects/test/writeDate.py # test 

這是腳本應該當我進入終端,並執行

import datetime 

with open('dateInfo.txt', 'a') as outFile: 
    outFile.write('\n' + str(datetime.datetime.now())) 

鍵入命令行

ps aux | grep cron 

我可以看到這一類的郵件

root    47903 0.0 0.0 2460724 1696 ?? Ss 6:28PM 0:00.31 /usr/sbin/cron 
jelly    71389 0.0 0.0 2432804 1380 s003 R+ 12:00PM 0:00.00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn cron 

此消息有時顯示R +有時鞋子S +,所以我認爲crontab中運行,但我無法找到這裏創建任何新的txt文件在目錄中。我想知道哪個部分出了問題,我該如何解決。

+0

嘗試運行文件時使用sudo可能像許可問題一樣簡單。 – thesonyman101

回答

0

問題在於Python的路徑。克龍有限的環境中運行,所以它不知道哪裏是.venv /斌/ Python的用戶/果凍/ PycharmProjects /測試/ writeDate.py 您必須使用absoulte paths