个人记录1

pkgname_ = "***"

version_ = "1.0"

import sys

import os

basepath_ = os.path.dirname(os.path.realpath(__file__))

modulepath_  = os.path.join(basepath_,"modules")

custompath_ = os.path.join(basepath_,"custom")

configpath_ = os.path.join(basepath_,"config")

sys.path.append(os.path.join(modulepath_,"config"))

sys.path.append(os.path.join(modulepath_,"parser"))

sys.path.append(os.path.join(modulepath_,"requester"))

sys.path.append(os.path.join(modulepath_,"transporter"))

sys.path.append(os.path.join(modulepath_,"decision"))

import optparse

import datetime

import imp

import time

import parser_

import requester

import decision

import transporter

def routine_(source):

#start parse!

parser = parser_.Parser(source)

urls = parser.execute()

if (parser.errorCode()):

code = parser.errorCode()

print "error occured while parssing. code: %s ; msg: %s " % \

(code, parser.errorMsg())

sys.exit(1)

#start request

req = requester.Requester(urls)

rResult = req.execute()

if (req.errorCode()):

print "error occured while request. code: %s ; msg: %s " % \

(req.errorCode(), req.errorMsg())

sys.exit(1)

#start decision

dec = decision.Decision(rResult)

dResult = dec.execute()

if (dec.errorCode()):

print "error eccoured while request. code: %s ; msg: %s " % \

dec.errorCode(), dec.errorMsg()

#result transport to log , show or mysql

trans = transporter.Transporter(result=dResult, mysql=saver["mysql"], \

erronly=erronly, log=saver["log"], stdout=saver["stdout"], \

alert=opt.alert, zabbix=saver["zabbix"])

tResult = trans.execute()

if (trans.errorCode()):

print "error occured while transport result. code : %s ;"+\

"msg: %s " % trans.errorCode(), trans.errorMsg()

sys.exit(1);

if __name__ == "__main__":

start = datetime.datetime.now()

#Option parser

optparser = optparse.OptionParser(usage="%s" % __doc__.strip(),\

version=pkgname_+‘ ‘+version_)

optparser.add_option("-m", "--mysql", dest="mysql", help="specify mysql source"\

+" of the data config,specify a mysql config file")

optparser.add_option("-d", "--dmysql", dest="dmysql", help="specify mysql source"\

+" of the dynamic ips ,specify a mysql config file")

optparser.add_option("-f", "--file", dest="file", help="specify a local ini file"\

+" as the source config data")

optparser.add_option("-p", "--param", dest="param", help="write the config source"\

+" data directly")

optparser.add_option("-y", "--resultmysql", dest="rmysql", help="set a sql"\

+" to store the results,set 1 to use the source mysql config.if only want"\

+" to save error result add ‘:error‘ at the end"\

+" e.g. -y /home/louis/sql.ini:error")

optparser.add_option("-l", "--resultfile", dest="rlog", help="set a file"\

+" to save the results,error message only plus :error"\

+" e.g. -l /home/louis/log.txt:error")

optparser.add_option("-s", "--resultstdout", dest="rstdout", help="if set"\

+" as stdout,result will be printed  plus :error if only want to print"\

"error result,e.g. -s stdout:error")

optparser.add_option("-a", "--alert", dest="alert", action="store_true", help="if set"\

+" , urlwatch will send alert message if error occured")

optparser.add_option("-z", "--zabbix", dest="zabbix", help="location of the l2zabbix"\

+" source file")

optparser.add_option("-e", "--deamon", dest="daemon", help="do routine in a unlimited"\

+" loop")

optparser.set_defaults(mysql=False, inifile=False, param=False, rstdout=False,

rmysql=False, rlog=False)

(opt, args) = optparser.parse_args(sys.argv)

if not (opt.file or opt.mysql or opt.param or opt.dmysql):

print "at least one source should be specified"

sys.exit(1)

if not (opt.rstdout or opt.rmysql or opt.rlog or opt.zabbix):

print "at least one result saver should be specified"

sys.exit(1)

source = {

"local": opt.file,

"mysql": opt.mysql,

"param": opt.param,

"dmysql": opt.dmysql,

}

rmysql = opt.rmysql.split(":") if opt.rmysql else False

rlog = opt.rlog.split(":") if opt.rlog else False

rstdout = opt.rstdout.split(":") if opt.rstdout else False

saver = {

"mysql": rmysql[0] if rmysql else False,

"log": rlog[0] if rlog else False,

"stdout": rstdout[0] if rstdout else False,

"zabbix": opt.zabbix

}

erronly = {

"mysql": True if (rmysql and len(rmysql) == 2 and rmysql[1] == "error")\

else False,

"log": True if (rlog and len(rlog) == 2 and rlog[1] == "error")\

else False,

"stdout": True if (rstdout and len(rstdout) == 2 and rstdout[1] == "error")\

else False,

}

if saver["mysql"] == "1" and source["mysql"]:

saver["mysql"] = source["mysql"]

if opt.daemon:

while True:

routine_(source)

time.sleep(float(opt.daemon))

else:

routine_(source)

时间: 2024-10-17 18:33:28

个人记录1的相关文章

老男孩Linux运维第41期20170917开班第四周学习重点课堂记录

第1章 必知必会文件 配置文件位置 该文件作用 /etc/sysconfig/network-scripts/ifcfg-eth0 第一块网卡的配置文件 同setup中的network /etc/resolv.conf 客户端DNS配置文件,优先级低于网卡配置文件 /etc/hosts 主要作用是定义IP地址和主机名的映射关系(域名解析),是一个映射IP地址和主机名的规定 /etc/sysconfig/network 用于配置hostname和networking /etc/fstab 开机自动

SSISDB8:查看SSISDB记录Package执行的消息

在执行Package时,SSISDB都会创建唯一的OperationID 和 ExecutionID,标识对package执行的操作和执行实例(Execution Instance),并记录operation message,统计executable的执行时间,便于developers 优化package的设计,对package进行故障排除. 一,在package发生错误时,查看失败的Executable An executable is a task or container that you

使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,在很多项目中广泛的应用.Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询.分页.排序.复选框.设置显示列.Card view视图.主从表显示.合并列.国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行.移动列位置等一些特殊的功能,插件可

Git 使用记录

在win7平台已经安装好了git的情况下: 1,Git 本地仓库建立与使用步骤: (2)新建立文件夹: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit (1)引入git: 通过git init命令把这个目录变成Git可以管理的仓库: $ git init Initialized empty Git repository in /Users/michael/learngit/.git/ (3)添加文件:git add fil

前端学HTTP之日志记录

前面的话 几乎所有的服务器和代理都会记录下它们所处理的HTTP事务摘要.这么做出于一系列的原因:跟踪使用情况.安全性.计费.错误检测等等.本文将谥介绍日志记录 记录内容 大多数情况下,日志的记录出于两种原因:査找服务器或代理中存在的问题(比如,哪些请求失败了),或者是生成Web站点访问方式的统计信息.统计数据对市场营销.计费和容量规划(比如,决定是否需要增加服务器或带宽)都非常有用 可以把一个HTTP事务中所有的首部都记录下来,但对每天要处理数百万个事务的服务器和代理来说,这些数据的体积超大,很

ClientDataSet中动态添加计算字段并用计算字段显示记录的UpdateStatus

ClientDataSet中每条记录都有UpdateStatus=(usUnmodified, usModified, usInserted, usDeleted)记录该条数据是修改的,删除的,还是新增的等.有时候我们只想看修改的或新增的或删除的就可能用到这一属性.下图用计算字段显示UpdateStatus状态. ********************************************************************************************

MySQL删除重复记录的方法

参考网上的方法,总结了产出重复记录的方法,欢迎交流. 方法1:创建一个新表临时储存数据 假设我们有一个存在多个字段的表,表中有部分数据的若干字段重复,此时我们可以使用DISTINCT这个关键字对表数据进行筛选. 1 CREATE [TEMPORARY] TABLE temp LIKE origin_tb; 2 INSERT temp(attr1,attr2,...) SELECT DISTINCT attr1,attr2,... FROM origin_tb; 3 DELETE FROM ori

北塔网管软件BTSO2.5安装过程记录

北塔网管软件据说是同类比较好的,原来的BTIM系列好像停止更新了,用BTSO版本代替,叫智慧运维平台,据说有各种改进,先把安装过程记录下来,以备以后重装. BTSO分两个部分:平台服务器和注册服务器,可以安装到一台主机,也可以分开,他们要能够通讯,否则认为盗版,注册要记录系统环境.要识别原版光盘,反正国产的软件版权意识近乎变态. 说明上要求win2008r2ent中文版或者win2012企业中文版,先试了2012,注册菜单不出现,重新用2008安装.顺序如下: 1.安装BETA-BTSO_2.5

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]

跳入linux的第一个坑-因为安装Ubuntu导致的硬盘被误格的恢复.(记TestDisk使用记录)

不看废话,直接跳到操作说明 前几日心血来潮想把家中的旧笔记本换成Linux操作系统,算是在业余生活中正式投入Linux的怀抱.说干就干,发行版选择了Ubuntu,下载了Ubuntu16.04的ISO,下载软碟通,制作成U盘启动.恩,重启电脑,U盘引导,进入安装界面. 恩,安装界面挺炫酷啊,还检测到硬盘中安装的Win8,恩,问我是与其他系统共存还是清除并安装,既然都正式投入怀抱了,肯定只安装Ubuntu啊,Win8,拜拜了,恩,选第二个.下图是网上找的.请注意第二个选项的注意:..算了,我就是看到