首页 > 代码库 > Django 检查数据备份结果
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=http://www.mamicode.com/‘/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获取数据时间较长,因此,在数据返回之前即ajax的beforeSend状态添加loding提示图片,ajax请求结束后 的complete状态,隐藏图片
Django 检查数据备份结果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。