![Cron 作业:[Errno 2] 没有这样的文件或目录](https://linux22.com/image/519026/Cron%20%E4%BD%9C%E4%B8%9A%EF%BC%9A%5BErrno%202%5D%20%E6%B2%A1%E6%9C%89%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95.png)
在 Mediatemple 网格服务器上,我尝试通过控制面板中设置的 cron 来运行它:
usr/bin/python /home/xxxxx/html/sitemap_gen.py --config=/home/xxxxx/html/config.xml
但是我收到错误“python:无法打开文件‘/home/95809/html/sitemap_gen.py’:[Errno 2] 没有此文件或目录。”但文件在那里。MT 需要路径,没有路径的错误也没什么区别。
我可以从 ssh 手动运行它:
python sitemap_gen.py --config=config.xml
并已对脚本进行 chmode 处理以供执行。
有没有其他可行的方法来运行该脚本?
MT 没有由 cron 运行的 python 脚本的直接示例,也不提供支持。
有没有办法将脚本包装在另一个脚本中 - 比如 bash 脚本 - 以避免必须包含路径或调用 python,我认为这可能是问题所在?
答案1
我建议两件事:
- 如果您有权限,请尝试在命令行上手动运行该命令
- 验证您的用户是否对文件具有执行权限
/home/xxxxx/html/sitemap_gen.py
编辑:哦,呃...尝试使用 python 的完整路径,因此如果 python 可执行文件在其中,/usr/bin
则会是:/usr/bin/python /home/xxx/html/sitemap_gen.py <blah blah blah>
答案2
创建一个虚拟脚本(仅打印一些内容)并通过 crond 运行它。也许 crond 甚至没有读取该文件所需的权限。
可能你的用户有权限所以可以执行它,但 crond 没有