問題が発生しているようです。スタッフのユーザーにそのプログラム用のMySQLデータベースをダウンロードさせることができるようにするためのビューが必要です。残念ながら、それは動作していません。私は問題を見つけ出すのが難しいようです。views.pyファイルを使用して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)ではうまく動かないのですか?
#!/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")
test.pyはまた、ここに私のc2duo_mmsフォルダのパーミッションです。すべてのファイルにも同じ権限があります。私は許可とは関係ないと思う。また、私は完全なディレクトリパスを使用していることを確認しています。
drwxr-xr-x 5 root root 4096 Aug 15 12:40 c2duo_mms
現在、リンクをクリックすると、ホームページにリダイレクトされますが、ダラベースはダンプされません。認証エラーの報告はありません。しかし、この場合、Webサーバーを実行しているユーザーをどのように見つけることができますか? – Shehzad009
@ Shehzad009エラーを表示するには、 'os.popen3'によって返された' stderr'を読み込む必要があります。また、[documentation says](http://docs.python.org/library/os.html#os.popen3) 'os.popen3'は廃止されているので、' subprocess'モジュールも考慮してください。そして、もしあなたがLinuxであれば、 'ps u'を実行してあなたのウェブサーバーがどんなユーザーであるかを知ることができます。 – Kirill