2013-02-03 34 views
1

我以root用戶身份運行cronjob腳本。該腳本位於/root/scripts/myscript.py 在這個python腳本我寫這樣的由cronjob腳本創建的日誌位置

log = open(os.path.basename(__file__) + ".log", "w+") 
print("some text", file=log) 

這應該創建一個文件名爲myscript.py.log文件它確實。但是這個文件位於/root/myscript.py.log。這是爲什麼?我預計它將在腳本目錄中創建。

我使用Debian Squeeze並通過作爲root用戶添加作業crontab -e

回答

2

這是因爲它在cron任務啓動時依賴於cwd,因此cron也可能更改目錄,因此對於cron運行的作業,絕對路徑名始終使用絕對路徑名,或者從命令行傳入絕對stub。

在你的情況crontab -e作爲root用戶,cron將以root身份運行你的腳本,因此使用該用戶的主目錄。即/根

+0

所以我必須指定日誌的絕對位置?那麼,謝謝你。 – HWende