Python 如何从django运行脚本?

Python 如何从django运行脚本?,python,django,shell,Python,Django,Shell,我想知道如何从django视图运行脚本 它从命令行工作:例如:$python sync.py,但不通过django视图。提前谢谢 脚本1:/home/ubuntu/webapps/sony_mv/sync.py 脚本2:/home/ubuntu/webapps/sony_mv/sync.sh views.py ls输出 whoami输出 为shell命令的输出添加日志有助于调试。 该问题与相应用户的权限和ssh密钥有关。 添加相应的用户SSH密钥修复了该问题 谢谢大家如果你打电话给([“/bin

我想知道如何从django视图运行脚本

它从命令行工作:例如:
$python sync.py
,但不通过django视图。提前谢谢

脚本1:/home/ubuntu/webapps/sony_mv/sync.py 脚本2:/home/ubuntu/webapps/sony_mv/sync.sh views.py ls输出 whoami输出
为shell命令的输出添加日志有助于调试。 该问题与相应用户的权限和ssh密钥有关。 添加相应的用户SSH密钥修复了该问题


谢谢大家

如果你打电话给([“/bin/sh”,“whoami”]),结果会怎样?sync.sh的所有权是什么?whoami返回ubuntu。脚本所有权是根。请参考文章中的更新了解详细信息。从Django的观点来看,“不工作”是什么意思?你在期待什么?不,我的目的是找出运行django的用户。你运行它的方式,就是你自己运行它。在Web服务器运行时,执行ps-ef | grep django并查看哪个用户真正在运行它。@Joe Frambach-django通过用户“www data”运行
#!/usr/bin/env python
from subprocess import call
call(["/bin/sh", "/home/ubuntu/webapps/sony_mv/sync.sh"])
cd /home/ubuntu/webapps/sony_mv
heroku pgbackups:capture -a staging-db --expire
heroku pgbackups:capture -a prod-db --expire
heroku pgbackups:restore DATABASE -a prod-db `heroku pgbackups:url -a staging-d` --confirm prod-db
def sync_staging_to_production(request):
    try:
        token = request.GET['token']
    except:
        token = False
    if token == '382749813256-231952135':
        from subprocess import *
        import sys
        p = Popen([sys.executable, '/home/ubuntu/webapps/sony_mv/sync.py'],stdout=PIPE,stderr=STDOUT)
        return render_to_response('hannibal/sync_staging_to_production.html',{'feedback':'Success. Sync in progress.'},context_instance=RequestContext(request))
    else:
        return render_to_response('hannibal/sync_staging_to_production.html',{'feedback':'Authorization required'},context_instance=RequestContext(request))
 $ ls -l sync.*
-rwxrwxr-x 1 root 108 2013-04-09 16:35 sync.py
-rwxrwxr-x 1 root 326 2013-04-09 16:44 sync.sh
$ python
>>> from subprocess import call
>>> call(["/usr/bin/whoami"])
ubuntu
0
>>>