[英]Crontab in Python creates cron job, but doesn't run script
不知道我做錯了是代碼,目錄還是別的什么。 請幫忙!
from crontab import CronTab
my_cron = CronTab(user='bgoldberg')
job = my_cron.new(command='python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py')
job.minute.every(1)
my_cron.write()
這是writeDate.py腳本:
import datetime
with open('dateInfo.txt','a') as outFile:
outFile.write('\n' + str(datetime.datetime.now()))
writeDate.py腳本只是將當前時間戳寫入txt文件,並且單獨運行時它可以正常工作。 當我運行python scheduleCron.py時,它運行沒有錯誤,但它似乎沒有運行writeDate.py腳本,因為沒有創建txt文件。 當我輸入crontab -l時,它正確顯示了創建的作業:***** python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py
不知道我做錯了什么......
這是一個cron“gotcha”。 Cron使用該命令
python /Users/bgoldberg/PythonScripts/FunStuff/writeDate.py
您希望寫入當前工作目錄,但cron將默認寫入/var/log/syslog
或其中的一些變體。 它試圖寫入你沒有權限的某個地方(但它不會死),所以你需要指定輸出文件的絕對路徑。
更改writeDate.py
的行以寫入絕對路徑:
with open('/Users/bgoldberg/dateinfo.txt', 'a') as outFile:
會解決你的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.