lamp環境加glusterfs儲存叢集自動化監控自動修複python指令碼

來源:互聯網
上載者:User

標籤:exe   exception   修複   mount   com   scripts   restart   inf   param   

#!/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=‘gluster_zabbix‘,password=‘gluster‘)
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 = [‘10.133.72.116‘,‘10.133.72.118‘]
nginx_list = [‘10.133.72.110‘,‘10.133.72.111‘]
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/panda.saicmotor.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/panda.saicmotor.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/panda.saicmotor.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/panda.saicmotor.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/panda.saicmotor.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/panda.saicmotor.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

lamp環境加glusterfs儲存叢集自動化監控自動修複python指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.