设为首页 收藏本站
查看: 1463|回复: 0

[经验分享] lamp环境加glusterfs存储集群自动化监控自动修复python脚本

[复制链接]

尚未签到

发表于 2019-2-1 12:44:32 | 显示全部楼层 |阅读模式
  #!/usr/bin/python
#coding:utf-8
import os
import sys
import re
import paramiko
import commands
import time
import datetime
  def apache_connect_perform(ip,command):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ip,username='gqwebix',password='qweqwer')
stdin,stdout,stdeer = client.exec_command(command)
global result
result = stdout.read()

print stdeer.read()

client.close()
  #apache_connect_perform()
  def apache_info_write(info):
with open('/opt/scripts/apache-stop.log','a') as f:
f.write(str(info) + '\n')
  if name == 'main':
command_apache_status =  "sudo su -c '/etc/init.d/apache2 status|grep running|wc -l' -"
command_apache_restart = "sudo su -c 'service apache2 restart' -"
command_nginx_reload = "setsid script -c 'sudo nginx -s reload' /dev/null"
command_apache_mount_check = "df -TH|grep '/app'|wc -l"
command_apache_mount = "sudo su -c 'mount -a' -"
apache_list = ['x.x.x.x,x.x.x.x']
nginx_list = ['x.x.x.x,x.x.x.x]
for ip in apache_list:
apache_connect_perform(ip,command_apache_status)

print result,ip

    if int(result) != 1:
info_apache_stop = "%s, %s apache is not running"%(datetime.datetime.now(),ip)
apache_info_write(info_apache_stop)
try:
apache_connect_perform(ip,command_apache_restart)
except Exception as a:
apache_info_write(a)
print result
time.sleep(3)
apache_connect_perform(ip,command_apache_status)
if int(result) != 1:
info_apache_stop_again = "%s ,%s apache restart fail"%(datetime.datetime.now(),ip)
apache_info_write(info_apache_stop_again)
for ip_nginx in nginx_list:
command_nginx_zhushi = "grep %s /etc/nginx/conf.d/adwer.qweqweqr.com.conf|grep '#'|wc -l"%ip
apache_connect_perform(ip_nginx,command_nginx_zhushi)
if int(result) == 0:
new_dst = "'s/server %s/#&/'"%ip
dst = ["sed","-i",new_dst,"/etc/nginx/conf.d/aeq.qeqeewerotor.com.conf"]
command_nginx_apache_stop = " ".join(dst)
new_command = ["sudo su -c",'"',command_nginx_apache_stop,'"',"-"]
new_command_split = " ".join(new_command)
apache_connect_perform(ip_nginx,new_command_split)
time.sleep(2)
apache_connect_perform(ip_nginx,command_nginx_reload)
else:
pass
else:
info_apache_restart_sucess = "%s,%s apache now is rerunning now"%(datetime.datetime.now(),ip)
apache_info_write(info_apache_restart_sucess)
else:
print datetime.datetime.now(), "%s apache is running"%ip

        apache_connect_perform(ip,command_apache_mount_check)
if int(result) == 1:
for ip_nginx_zhushi in nginx_list:
print datetime.datetime.now(),"%s apache mount is already now"%ip

                command_nginx_zhushi = "grep %s /etc/nginx/conf.d/qweqwe.qweqwe.com.conf|grep '#'|wc -l"%ip
apache_connect_perform(ip_nginx_zhushi,command_nginx_zhushi)
if int(result) == 1:
new_dst = "'/%s/s/#//g'"%ip
dst = ["sed","-i",new_dst,"/etc/nginx/conf.d/qewqweq.saiewrwercqeq.com.conf"]
command_nginx_apache_stop = " ".join(dst)
new_command = ["sudo su -c",'"',command_nginx_apache_stop,'"',"-"]
new_command_split = " ".join(new_command)
apache_connect_perform(ip_nginx_zhushi,new_command_split)
time.sleep(2)
apache_connect_perform(ip_nginx_zhushi,command_nginx_reload)
else:
print "not mount"

            info_app_mount = "%s ,%s apache is not mount now"%(datetime.datetime.now(),ip)
apache_info_write(info_app_mount)
try:
apache_connect_perform(ip,command_apache_mount)
except Exception as b:
apache_info_write(b)
time.sleep(2)
apache_connect_perform(ip,command_apache_mount_check)
if int(result) == 1:
info_remount = "%s,%s apache is remounting now"%(datetime.datetime.now(),ip)
apache_info_write(info_remount)
else:
info_mount_fail = "%s ,%s apache is remount fail"%(datetime.datetime.now(),ip)
apache_info_write(info_mount_fail)
for ip_nginx1 in nginx_list:
command_nginx_zhushi = "grep %s /etc/nginx/conf.d/qweqweq.saqweqweqqwe.com.conf|grep '#'|wc -l"%ip
apache_connect_perform(ip_nginx,command_nginx_zhushi)
if int(result) == 0:
new_dst = "'s/server %s/#&/'"%ip
dst = ["sed","-i",new_dst,"/etc/nginx/conf.d/qweqwr.sqeqweqwewqee.com.conf"]
command_nginx_apache_stop = " ".join(dst)
new_command = ["sudo su -c",'"',command_nginx_apache_stop,'"',"-"]
new_command_split = " ".join(new_command)
apache_connect_perform(ip_nginx,new_command_split)
time.sleep(2)
apache_connect_perform(ip_nginx,command_nginx_reload)
else:
pass



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670459-1-1.html 上篇帖子: GlusterFS标准posix接口兼容性测试说明 下篇帖子: Gluster 3.8 版本说明及GlusterFS社区版本维护说明
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表