久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      監(jiān)控mysql和mongo數(shù)據(jù)庫服務腳本

      應帥氣的領(lǐng)導要求,需要腳本監(jiān)控生產(chǎn)環(huán)境mysql和mongo數(shù)據(jù)庫服務。不僅要connect successful還要進行數(shù)據(jù)交互進一步確認數(shù)據(jù)庫服務正常。

      代碼如下:

      #!/bin/bash

      #author:吳青聰

      #email:wuqingcong@aliyun.com

      #encoding: utf-8

      #聲明四個數(shù)據(jù),存放數(shù)據(jù)庫信息 ip、用戶、密碼、端口

      declare -a host

      declare -a user

      declare -a passwd

      declare -a port

      #定義一個計數(shù)變量,初始值 0

      n=0

      #指明收件郵箱

      mail=wuqingcong@aliyun.com

      #按行讀取記錄了數(shù)據(jù)地址端口用戶名密碼信息的文件,存放進對應數(shù)組,此處文件為mysqldb_message.txt,其格式如下:

      #host:192.168.0.32 user:test passwd:123456 port:3306 注意行首無空格

      while read line

      do

      eval $(echo $line | awk -F"[: ]" '{printf("host[$n]=%s; user[$n]=%s; passwd[$n]=%s; port[$n]=%s",$2,$4,$6,$8)}')

      let n++

      done < mysqldb_message.txt

      #檢測數(shù)據(jù)庫服務

      let n–

      for i in $(seq 0 $n);do

      # 檢測命令

      mysql -h${host[$i]} -u${user[$i]} -p${passwd[$i]} -P${port[$i]} -e "select 1 from dual;" –connect-timeout=5 &> /dev/null

      #判斷執(zhí)行結(jié)果$?,為0執(zhí)行成功,為1出現(xiàn)錯誤異常

      if [ $? -ne 0 ]

      then

      python3 mail.py $mail "mysqldb down " "please check mysql-service on ${host[$i]}"

      echo "mysql$i is down"

      else

      # python3 mail.py $mail "mysqldb is fine " "Do not need check mysql-service on ${host[$i]} "

      echo "mysql$i is fine"

      fi

      done

      #檢測mongodb

      #清空計數(shù)變量

      n=0

      #按行讀取記錄了數(shù)據(jù)地址端口用戶名密碼信息的文件,存放進對應數(shù)組,此處文件為mongodb_message.txt,其格式如下:

      #host:127.0.0.1 user:root passwd:root port:27017 authDB:admin 注意行首無空格

      while read line

      do

      eval $(echo $line | awk -F"[: ]" '{printf("host[$n]=%s; user[$n]=%s; passwd[$n]=%s; port[$n]=%s; db[$n]=%s",$2,$4,$6,$8,$10)}')

      let n++

      done < mongodb_message.txt

      let n–

      for i in $(seq 0 $n);do

      echo "show tables maxTimeMS(5000)" | mongo ${host[$i]}:${port[$i]}/${db[$i]} -u ${user[$i]} -p ${passwd[$i]} &> /dev/null

      if [ $? -ne 0 ]

      then

      server=${host[$i]}

      python3 mail.py $mail "mongodb down " "please check mysql-service on $server"

      echo "mongodb$i is down"

      else

      # python3 mail.py $mail "mongodb is fine " "Do not need check mysql-service on ${host[$i]}"

      echo "mongodb$i is fine"

      fi

      done

      郵件腳本為參考他人腳本,用Python編寫,存放上述代碼腳本同目錄即可,郵件腳本代碼如下:

      #!/usr/bin/env python

      #

      # encoding: utf-8

      import sys

      import smtplib # 加載smtplib模塊

      import traceback

      from email.header import Header

      from email.mime.application import MIMEApplication

      from email.mime.multipart import MIMEMultipart

      from email.mime.text import MIMEText

      from email.utils import parseaddr, formataddr

      login_name = 'monitor@7net.cc' # 發(fā)件人郵箱賬號,為了后面易于維護,所以寫成了變量

      login_pass = '*******' # 因發(fā)博客而隱藏,自己腳本中需要指定

      smtp_port = 465

      def _format_addr(s):

      name, addr = parseaddr(s)

      return formataddr((

      Header(name, 'utf-8').encode(),

      addr))

      # addr.encode('utf-8') if isinstance(addr, unicode) else addr))

      def send_mail(sender, recps, Ccs, subject, htmlmsg, fileAttachment):

      smtpserver = 'smtp.exmail.qq.com'

      receivers = recps + Ccs

      try:

      # msg = MIMEText(htmlmsg, 'html', 'utf-8')

      msg = MIMEMultipart()

      msg.attach(MIMEText(htmlmsg, 'html', 'utf-8'))

      # msg['Subject'] = subject

      msg['Subject'] = Header(subject, 'utf-8').encode()

      # msg['From'] = sender

      msg['From'] = _format_addr(sender)

      Recp = []

      for recp in recps:

      Recp.append(_format_addr(recp))

      ccs = []

      for cc in Ccs:

      ccs.append(_format_addr(cc))

      msg['To'] = ','.join(Recp)

      msg['Cc'] = ','.join(ccs)

      # if fileAttachment!='' :

      # # 附件

      for file in fileAttachment:

      part = MIMEApplication(open(file, 'rb').read())

      attFileName = file.split('/')[-1]

      part.add_header('Content-Disposition', 'attachment', filename=attFileName)

      msg.attach(part)

      # part = MIMEApplication(open(fileAttachment, 'rb').read())

      # part.add_header('Content-Disposition', 'attachment', filename=fileAttachment)

      # msg.attach(part)

      smtp = smtplib.SMTP_SSL()

      smtp.connect(smtpserver, smtp_port)

      smtp.login(login_name, login_pass)

      # smtp.login(username, password)

      smtp.sendmail(sender, receivers, msg.as_string())

      smtp.quit()

      print('SendEmail success')

      except:

      traceback.print_exc()

      def main():

      to=sys.argv[1]

      subject=sys.argv[2]

      content=sys.argv[3]

      # send_mail("監(jiān)控中心", ["吳青聰"], [], subject, "郵件內(nèi)容2", "")

      send_mail("監(jiān)控中心", [to], [], subject, content, "")

      if __name__ == "__main__":

      main()

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號