簡體   English   中英

Python中的Crontab創建了cron作業,但不運行腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM