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:\Users\cchen\Desktop')
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\n')
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:\n',x,'\n',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\n\
tcpsvd 0 21 ftpd -w /ftppub &\n\
/etc/init.d/xinetd start\n')
time.sleep(2)
ssh.send('scp -vr root@'+cipsip+': /var/volatile/log/ /sdlog/\n')
time.sleep(1)
x1=ssh.recv(10000)
print x1+'\n'
pattern2=re.compile(r'Are you sure you want to continue connecting')
y1=re.findall(pattern2,x1)
if y1:
ssh.send('yes\n')
time.sleep(1)
x2=ssh.recv(10000)
print x2+'\n'
print 'The log is in sdlog/log/ now.\n'
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!')
A python script to check NE syncfail and get log from CIPS的更多相关文章
- (copy) Shell Script to Check Linux System Health
source: http://linoxide.com/linux-shell-script/shell-script-check-linux-system-health/ This article ...
- java + spring (jython\python\script) Error:SyntaxError: no viable alternative at character '\n'
使用Jython结合java和Python开发功能时,要是遇到如下情况: 2016-03-10 16:16:49 DEBUG [com.freedom.orion.configs.JyhtonConf ...
- --- no python application found, check your startup logs for errors
--- no python application found, check your startup logs for errors 碰到这个问题,请留意下系统执行的python版本和自己的djan ...
- Windows 配置Apache以便在浏览器中运行Python script的CGI模式
打开httpd.conf,找到”#ScriptInterpreterSource Registry “,移除前面的注释# (如果找不到这行,就自己添加进去) 找到“Options Indexes Fo ...
- Notepad++插件Emmet和Python Script的安装
最近在做一个项目,涉及到大量的HTML.CSS代码的编写,手动写代码效率实在 是低下.于是想搜索一下,有没有Notepad++插件可以支持自动生成的,果不其然还真有.Emmet,这款神器其实就是 Ze ...
- rc.local 注意事項,call python script, file position
如果要在 rc.local 呼叫 python script python script 的位置需使用絕對路徑 其 python script 裡的有關 file 的位置也需使用 絕對路徑 如果要在 ...
- MS SQL错误:SQL Server failed with error code 0xc0000000 to spawn a thread to process a new login or connection. Check the SQL Server error log and the Windows event logs for information about possible related problems
早晨宁波那边的IT人员打电话告知数据库无法访问了.其实我在早晨也发现Ignite监控下的宁波的数据库服务器出现了异常,但是当时正在检查查看其它服务器发过来的各类邮件,还没等到我去确认具体情 ...
- python+selenium之自定义封装一个简单的Log类
python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...
- NE Upgrade python script. Need to write a Tkinter GUI for it
# -*- coding: utf-8 -*-#from ftplib import FTP __authour__='CC' import osimport telnetlibimport time ...
随机推荐
- visual studio 2015 + Cordova 开发环境搭建
简单的写一些,备忘,太折腾了,特别是通过代理上网的我们国内的开发者 1.当然是安装Visual Studio 2015,别忘了选择Tools For Apache Cordova. 对于通过Proxy ...
- winserver2008 DNS 很详细
from http://www.it165.net/admin/html/201312/2182.html DNS(Domain Name System域名系统)区域化管理 分布式 层次性 域名空间结 ...
- Unity和Android互相调用
安卓部分代码: public class GameMainActivity extends UnityPlayerActivity { private static String CODE_ROOT ...
- JSP中动态INCLUDE与静态INCLUDE的区别
动态INCLUDE 用法: <jsp:include page="included.jsp" flush="true" /> 说明: 它总是会检查所 ...
- 浅析JS中的模块规范(CommonJS,AMD,CMD)////////////////////////zzzzzz
浅析JS中的模块规范(CommonJS,AMD,CMD) 如果你听过js模块化这个东西,那么你就应该听过或CommonJS或AMD甚至是CMD这些规范咯,我也听过,但之前也真的是听听而已. ...
- Java被忽略的基本知识(三)
35.e.printStackTrace();输出异常信息,也可以使用System.out.println(e); 36.范围小的异常,要放在范围大的异常前面. 37.断言:判断某个结果的正确性,正确 ...
- java在cmd下编译和执行引用jar的类
java编译和执行引用第三方jarcmd 1.将上面的ojdbc14.jar文件,与调用程序复制到系统D盘的根目录下,切记:因为调用程序在wym.database包下,所以需要将类其所在的包一起拷贝 ...
- java基础复习:final,static,以及String类
2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...
- AsyncTask 异步处理
1 package com.ch.day8_asynctaskdemo; 2 3 import java.util.ArrayList; 4 5 import com.ch.myutils.NetWo ...
- asp.net页面生命周期请求管道19个事件
HttpContext: ecb→ HttpWorkerRequest→HttpContext HttpApplicationFactory.获取了HttpApplication实例之后. (1)Be ...