码迷,mamicode.com
首页 > 其他好文 > 详细

Django 检查数据备份结果

时间:2017-03-14 21:39:31      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:django 数据备份

目的:利用ansible获取后端服务器数据每天备份结果 平台:Django  

1.views.py 中添加函数

def backup_status(request):
   arg_mysql = "du -sh/backup/mysql/db/`date -I`"
   arg_mongo = "du -sh /backup/mongodb/`date -I`"
   arg_data = ‘tail -n 3/var/log/rsync_data.`date +"%Y%m%d2301" -d"-1day"`‘
   cmd_mysql = "/usr/bin/ansible backup -m raw -a ‘%s‘" %arg_mysql
   cmd_mongo = "/usr/bin/ansible backup -m raw -a ‘%s‘" %arg_mongo
   cmd_data = "/usr/bin/ansible data -m raw -a ‘%s‘" % arg_data
   results = ()
   for cmd in (cmd_mysql, cmd_mongo, cmd_data):
     process = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
     output = process.communicate()[0]
     s=(output,)
     results += s
   status = {}
   keys = (‘mysql‘,‘mongo‘,‘data‘)
   # 将结果整合为字典status返回给前端,
   for key,value in zip(keys,results):
       status[key] = value
   return HttpResponse(json.dumps(status), content_type=‘application/json‘)
   不要忘了content_type=‘application/json‘,否则前端将无法识别,提示undified



2.前端模板添加jquery

<script type="text/javascript">
     function backup_status(){
         $.ajax({
            url:‘/backup_status/‘,
            beforeSend: function(){
              $("#loading").html("<img src=‘/static/img/loading.gif‘ />"); 
             },
            success: function(status){
                $("#mysql").html(status.mysql);
                $("#mongo").html(status.mongo);
                $("#data").html(status.data);
             }, 
            complete:function(){
              $("#loading").html("")
             }
        });
        };

3. urls.py 配置 

url(r‘^backup_status/$‘, ‘backup_status‘),


页面上点击button的时候,会触发函数backup_status,返回数据;由于后端ansible获取数据时间较长,因此,在数据返回之前即ajaxbeforeSend状态添加loding提示图片,ajax请求结束后 的complete状态隐藏图片


Django 检查数据备份结果

标签:django 数据备份

原文地址:http://3379770.blog.51cto.com/3369770/1906357

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!