我有/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