2014-02-16 81 views
0

有人幫我請:不創建的文件,在Ubuntu服務器12.04定時任務

我已經在Ubuntu服務器12.04,從網絡弗里斯特工作recolete數據做了一個cron作業,並在數據的基礎設置,它的工作好,但是在secon中,在讀取數據庫時應該使用python scrpit,並且應該從數據庫數據創建一個文件,但它不起作用。

[email protected]:/etc$ crontab -e 

我編輯本:

# For more information see the manual pages of crontab(5) and cron(8) 
# 
# m h dom mon dow command 
*/1 * * * * /usr/bin/python /home/rub/app/writeindb.py 
*/1 * * * * /usr/bin/python /home/rub/app/writedatafromdb.py 

我的代碼在python writedatafromdb.py

cursor.close() #close curso in data base 
conn.close() #close connecion in data base 
json.dump(geojson, open('datafromdb.json', 'w'))  
+0

它從終端工作嗎?沒有cron?另外,你怎麼能告訴它不起作用?你可能會錯過當前的目錄,試着給出'datafromdb.json'的完整路徑 –

+0

作爲一個附註,你應該總是關閉你打開的文件(或者,最好使用'with'語句),_especially_文件在寫入模式下打開。 Python不保證該對象會被破壞。如果不這樣做,則不能保證會調用close或flush,這意味着您寫入的最後一個數據緩衝區可能永遠不會在磁盤上結束。 – abarnert

回答

1

你是在你的代碼中使用相對路徑的最後部分,所以文件datafromdb.json被寫入當前工作目錄。但是cronjob不會像在shell中那樣在相同的工作目錄中運行Python腳本。請參閱Unix & Linux Stack Exchange網站上的What is the 'working directory' when cron executes a job

改爲使用絕對文件路徑;一個以/開頭並說明文件的完整路徑。

相關問題