zoukankan      html  css  js  c++  java
  • A python script to check NE syncfail and get log from CIPS

    #! /usr/bin/env python
    # -*- coding: UTF-8 -*-

    """
    The script is to check whether NE is in syncfail, if it is syncfail, login into CIPS to get login.


    """
    import paramiko
    import ssh
    import os
    import re
    import time
    import appdirs
    import packaging
    import packaging.version
    import packaging.specifiers
    import packaging.requirements
    import pyasn1.type
    import pyasn1.type.univ

    paramiko.__version__
    appdirs.__version__
    packaging.__version__
    packaging.version.__doc__
    packaging.specifiers.__doc__
    packaging.requirements.__doc__
    pyasn1.type.__doc__
    pyasn1.type.univ.__doc__


    #定义syncfail异常类
    class Syncfail_Exception(Exception):
    def __init__(self,value):
    self.value=value
    def __str__(self):
    return self.value

    #定义
    class syncfail(object):
    def __init__(slef,neip,cipsip,ss=5):
    slef.neip = neip
    slef.cipsip = cipsip
    slef.ss=ss
    def __str__(slef):
    print "Syncfail or not, is a question!"

    def checksyncfail(self):
    port = 22
    username = 'root'
    password = 'root'
    #os.chdir(r'C:UserscchenDesktop')
    paramiko.util.log_to_file('paramiko.log')
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(self.neip,port,username,password)
    ssh=s.invoke_shell()
    self.ss-=2
    while(1):
    time.sleep(self.ss)
    ssh=s.invoke_shell()
    ssh.send('cat /var/log/dpkg_cfpal.log|grep syncfail ')
    time.sleep(2)
    x = ssh.recv(10000)
    #print x
    pattern1=re.compile(r'(into syncfail state)')
    y=re.findall(pattern1,x)
    #y=1 just for test
    if y:
    print 'Syncfail occurs: ',x,' ',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    else:
    print 'No syncfail here.',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))

    if y:
    try:
    raise Syncfail_Exception('Syncfail occurs')
    except Syncfail_Exception,e:
    print e
    self.getlog(self.neip,self.cipsip)
    break
    def getlog(self,neip,cipsip):
    port = 22
    username = 'root'
    password = 'root'
    s = paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(self.neip,port,username,password)
    ssh=s.invoke_shell()
    ssh.send('/etc/init.d/xinetd stop
    tcpsvd 0 21 ftpd -w /ftppub &
    /etc/init.d/xinetd start ')
    time.sleep(2)
    ssh.send('scp -vr root@'+cipsip+': /var/volatile/log/ /sdlog/ ')
    time.sleep(1)
    x1=ssh.recv(10000)
    print x1+' '
    pattern2=re.compile(r'Are you sure you want to continue connecting')
    y1=re.findall(pattern2,x1)
    if y1:
    ssh.send('yes ')
    time.sleep(1)
    x2=ssh.recv(10000)
    print x2+' '

    print 'The log is in sdlog/log/ now. '




    if __name__=='__main__':
    neip=raw_input('Please put in your NE IP, such as 200.200.180.24:')
    cipsip=raw_input('Please put in your CIPS IP:')
    ss=int(raw_input('Please put in the check interval time(s>3)'))
    sync=syncfail(neip,cipsip,ss)
    sync.checksyncfail()
    raw_input('Print any to quit!')

  • 相关阅读:
    点击标签,通过jquery.jcarousel动态axaj加载内容,实现跑马灯效果
    FreeSwitch VoiceMail 语音信箱 研究
    FreeSwitch IVR VoiceMail 语音信箱
    微软企业库连接access,web.config相对路径配置
    FreeSWITCH 添加中文语音包
    FreeSwitch通过远程接口返回动态IVR语音菜单
    FreeSwitch注册上了,但拨打电话,提示Rejcted by acl "domians". Falling back to Digest auth
    ACM:密码截获
    c++ ACM:递归实例
    CSS:浏览器兼容性图表
  • 原文地址:https://www.cnblogs.com/AlwaysT-Mac/p/6016506.html
Copyright © 2011-2022 走看看