我有/home/dmbot/
解決'沒有這樣的文件或目錄'沒有使用絕對路徑?
的/home/dmbot/
裏面的內容的Python腳本是:
[email protected]:~/dmbot# ls -lah
total 40K
-rw-r--r-- 1 root root 1.7K Dec 27 18:14 accounts.py
-rw-r--r-- 1 root root 185 Dec 27 18:14 config.py
drwxr-xr-x 2 root root 4.0K Dec 27 18:14 followers
-rwxr-xr-x 1 root root 1.8K Dec 27 18:35 script.py
drwxr-xr-x 2 root root 4.0K Dec 27 18:14 tokens
當我從shell中運行我的腳本,而我在/home/dmbot/
,它工作正常,但我試圖從cron運行它。
我加入這一行對我的crontab:
12 19 * * * /usr/bin/python /root/dmbot/script.py
當cron的運行,我得到這個在我的根電子郵件:
Traceback (most recent call last):
File "/root/dmbot/script.py", line 5, in <module>
execfile('tokens/acc1.py', globals())
IOError: [Errno 2] No such file or directory: 'tokens/acc1.py'
既然當我從shell中執行它工作正常,爲什麼cron在運行時不工作?我必須爲我的整個腳本設置絕對路徑嗎?
我在本地計算機上編寫了腳本,現在我將其上傳到Ubuntu服務器。如果我在整個腳本上設置絕對路徑,我將不得不維護兩個腳本,因爲我的計算機的文件夾結構與Ubuntu服務器不同。
是否有解決方法?
可能是一個愚蠢的問題,但是在'tokens'子目錄中確實有一個名爲'acc1.py1'的文件? –
Hi @JustinLardinois, 是的,因爲當我從shell運行腳本時,它工作正常。 'root @ alpha:〜/ dmbot/tokens#ls acc1.py acc2.py acc3.py acc4.py acc5.py acc6.py' – viniciusmunich