仓酷云

标题: 来谈谈:检讨Linux体系日记error和mysql毛病日记的剧本 [打印本页]

作者: 若相依    时间: 2015-1-14 21:04
标题: 来谈谈:检讨Linux体系日记error和mysql毛病日记的剧本
小知识:CentOS是一个基于RedHatLinux提供的可自由使用源代码的企业级Linux发行版本。
对体系日记的检讨和数据库日记的检讨很主要,涌现成绩实时的告诉体系治理员更加主要,本剧本用python写的监控剧本,重要是为zabbix监控自界说的key而预备的,固然人人也能够在前往值方面做修正,可以在写个发邮件的模块,做个准时,有成绩主动发邮件(在之前写过一个发邮件的类,人人可以做参考:http://wangwei007.blog.51cto.com/68019/978743)。在zabbix中自界说key来检测体系日记和数据库日记:
UnsafeUserParameters=1

UserParameter=check.sys_error,/usr/local/zabbix/bin/chk_err_log.pysyslog
UserParameter=check.mysql_error,/usr/local/zabbix/bin/chk_err_log.pymysqllog
本剧本合适一台办事器多实例的mysql毛病日记检测,也实用于单个示例的检测,依据本身的需求做修正。
  1. #!/usr/bin/envpython#encoding=utf-8importos,sysdefchk_err(log_file,tmp_file,type,print_list,port):cur_num=int(os.popen("sudogrep%s|wc-l"%log_file).read().strip())old_num=0ifos.path.exists(tmp_file):old_num=int(open(tmp_file).read().strip())ifcur_num<old_num:os.popen("echo0>%s"%tmp_file)old_num=0else:os.popen("echo0>%s"%tmp_file)err_log=os.popen("sudogrep-nierror%s"%log_file).readlines()iferr_log:err_list=[]forerrinerr_log:ifint(err.split(":")[0])>old_num:err_list.append(err[len(err.split(":")[0])+1:])iferr_list:os.popen("echo%s>%s"%(err_log[-1].split(":")[0],tmp_file))print_list.append(port)defchk_err_log(type):try:print_list=[]homedir="/home/zabbix"ifnotos.path.exists(homedir):os.mkdir(homedir)iftype=="syslog":log_file="/var/log/messages"tmp_file="%s/.syslog_num"%homedircur_num=int(os.popen("sudogrep%s|wc-l"%log_file).read().strip())old_num=0ifos.path.exists(tmp_file):old_num=int(open(tmp_file).read().strip())ifcur_num<old_num:os.popen("echo0>%s"%tmp_file)old_num=0else:os.popen("echo0>%s"%tmp_file)err_log=os.popen("sudogrep-nierror%s|grep-vsnmpd|grep-vsftp"%log_file).readlines()ifnoterr_log:return"0"err_list=[]forerrinerr_log:ifint(err.split(":")[0])>old_num:err_list.append(err[len(err.split(":")[0])+1:])ifnoterr_list:return"0"else:os.popen("echo%s>%s"%(err_log[-1].split(":")[0],tmp_file))return"1"eliftype=="mysqllog":psinfo=os.popen("psauxww|grepmysqld|grep-vroot|grep-vgrep").readlines()ifnotpsinfo:return"Nomysqldrunninginthisservernow"foriinpsinfo:port="0"forjini.split("--"):ifj.find("datadir")!=-1:datadir=j.split("=")[1].strip()elifj.find("port")!=-1:port=j.split("=")[1].strip()ifport=="0":continueifport=="3306":log_file="%s/$(hostname).err"%datadirelse:log_file="%s/mysql.err"%datadirtmp_file="%s/.mysqllog_%s"%(homedir,port)chk_err(log_file,tmp_file,type,print_list,port)iflen(print_list)==0:return"0"else:returnprint_listexceptException,e:returneif__name__=="__main__":printchk_err_log(sys.argv[1])
复制代码

小知识:退一万步讲,即使CentOS项目终结,正在运行它的企业也可以很轻松的转移到另一个企业Linux的克隆版。
作者: 小魔女    时间: 2015-1-16 23:37
标题: 来谈谈:检讨Linux体系日记error和mysql毛病日记的剧本
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
作者: 透明    时间: 2015-1-21 23:34
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
作者: 第二个灵魂    时间: 2015-1-30 23:09
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
作者: 莫相离    时间: 2015-2-6 17:00
我感觉linux的学习,学习编程~!~!就去学习C语言编程!!
作者: 分手快乐    时间: 2015-2-17 17:08
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
作者: 若天明    时间: 2015-3-5 22:12
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
作者: 老尸    时间: 2015-3-20 00:15
我想即使Linux高手也很难快速准确精练的回答你。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2