我似乎遇到了问题。我想要一个视图,我可以让员工用户下载该程序的MySQL数据库。不幸的是它不起作用。我发现问题似乎很难。
Views.py
@login_required
def dbbackup(request):
if not (request.user.is_authenticated() and request.user.is_staff):
raise http.Http404
os.popen3("mysqldump -u *username* -p*password* *database* > /usr/local/src/djcode/c2duo_mms/backup.sql")
os.popen3("gzip -c /usr/local/src/djcode/c2duo_mms/backup.sql > /usr/local/src/djcode/c2duo_mms/backup.gz"
return HttpResponseRedirect("/mmc")
我试图解决问题。它在转储数据的部分失败了 - 因为c2duo_mms中没有出现sql文件。
现在,如果我要创建一个单独的python脚本,使用python test.py
运行它将起作用。那么为什么它不能在我的views.py文件 - 或Django。
test.py
#!/usr/bin/env python
from django.conf import settings
import os
os.popen3("mysqldump -u *username* -p*password* *database* > /usr/local/src/djcode/c2duo_mms/backup.sql")
os.popen3("gzip -c /usr/local/src/djcode/c2duo_mms/backup.sql > /usr/local/src/djcode/c2duo_mms/backup.gz")
此处还有我的c2duo_mms文件夹的权限。所有文件也具有相同的权限。我不认为它与权限有关。我也确定我使用完整的目录路径。
drwxr-xr-x 5 root root 4096 Aug 15 12:40 c2duo_mms
答案 0 :(得分:2)
网络服务器可能以root用户身份运行,因此无权创建该文件。