java服务有的时候报了OutOfMemory错误后,进程还在哪里。为了即时发现这样的错误,写了这个脚本,用这个脚本定时扫描java服务日志文件的最后500行,如果有OutOfMemory错误,就给指定邮箱发送邮件。邮件内容包括:发生错误的主机和报错的文件。
#!/usr/bin/python
import string
import smtplib
from email.mime.text import MIMEText
import socket
import fcntl
import struct
logFiles = ['file.txt']
pat = 'OutOfMemory'
mailserver = 'smtp.163.com'
username = 'xxxx@163.com'
password = 'yy'
from_addr = 'xxxx@163.com'
to_addr = 'zzzz@sohu.com'
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(),0x8915,struct.pack('256s', ifname[:15]))[20:24])
host = get_ip_address('eth0')
def fileScan(file,pattern):
logFile = open(file,'r')
logStrs = logFile.readlines()
logLines = len(logStrs)
logStr = str(logStrs[-10:logLines])
try:
logStat = logStr.index(pattern)
if logStat:
return 1
except ValueError:
return 0
logFile.close()
for f in logFiles:
stat = fileScan(f,pat)
if stat:
msg = MIMEText('Host ip: ' + host + "\r\n" + 'OutOfMemory File: ' + f)
msg['Subject'] = 'Java Service OutOfMemory'
svr = smtplib.SMTP(mailserver)
#svr.set_debuglevel(1) #print debug
svr.login(username,password)
svr.sendmail(from_addr,to_addr,msg.as_string())
svr.close()
分享到:
相关推荐
【使用Python监控Linux服务器】 在Linux环境中,使用Python进行服务器监控是一种常见的实践,因为它提供了丰富的库和简洁的语法,使得开发监控脚本变得容易。在本文中,我们将深入探讨如何利用Python2.7来编写针对...
yarn任务邮件监控及linux进程邮件监控,定时检查 ,本人在生产环境使用的,可以监控yarn任务,各种进程 如namenode ,java jar进程,如果不明白可以留言或者联系我(文档里面有联系方式)
1. `README.md`:文件,提供脚本的使用说明和安装指南。 2. `requirements.txt`:列出了项目所依赖的Python库及其版本,方便用户快速搭建运行环境。 3. `ticket_purchase.py`:主脚本文件,包含抢票的核心逻辑。 4. ...
1. Python脚本:用于发起工作流请求,可能通过Jython调用Java中的工作流API。 2. Java类:实现JBPM的工作流逻辑,可能包括启动、处理任务、完成节点等操作。 3. Maven配置:定义了项目的依赖关系和构建过程。 4. ...
在IT行业中,有时候我们需要在不同编程语言之间进行交互,例如在Java应用中调用Python脚本来执行特定任务。这种情况在服务器监控、数据处理或者利用已有的Python库时尤为常见。本篇文章将详细介绍如何在Java中直接...
监控LINUX服务器内存、CPU、磁盘路径等信息钉钉、企业微信机器人发送消息提醒脚本,可使用定时任务来完成此功能
标题中的“zbbix 监控mysql的脚本”指的是使用Zabbix监控MySQL数据库的一种解决方案。Zabbix是一款开源的企业级监控系统,能够监控各种网络参数以及服务器的健康状况和服务状态。MySQL是世界上最流行的开源关系型...
基于Java和Python的PM2.5实时监控系统 项目简介 本项目是一个基于Java和Python的PM2.5实时监控系统,旨在提供一个全面的解决...5. 机器学习预测使用Python脚本进行PM2.5浓度的预测,并将预测结果保存到数据库中。
系统实现了基于Java的Linux运维监控工具Wgcloud,支持系统硬件信息、内存、CPU、温度、磁盘空间及IO、硬盘SMART、系统负载、网络流量等监控,服务接口监测,大屏展示,拓扑图,端口监控,进程监控,Docker监控,日志...
1. **WebLogic Scripting Tool (WLST)**: WLST是WebLogic提供的一种命令行工具,允许管理员通过Python脚本来执行各种管理任务,包括监控。你可以使用WLST查询服务器状态、收集性能数据、创建和修改配置等。 2. **...
1. **创建Python3脚本**:编写一个Python3版本的启动脚本,该脚本需要实现与原始bin文件相同的功能,如解析命令行参数,加载配置,调度和监控任务等。 2. **集成DataX Python插件**:DataX支持插件机制,需要确保...
2. **Python监控** - **监控原理**:Python脚本可以结合`crontab`定时任务,周期性地执行监控任务。它能调用Shell命令或直接执行JVM命令收集信息,并使用Python的SMTP库发送监控邮件,同时可能包含HTML格式的系统...
“非常适合需要把python用出java味道的公司”暗示了这个项目的目标是提供类似Java的部署体验。在Java世界中,JAR或WAR文件可以方便地在任何支持Java的环境中运行,无需关心具体依赖。此Python打包服务器项目意在为...
这个压缩包文件"使用python来简单实现jdk几个指令.zip"提供了一种使用Python来实现Java JDK中几个基础命令的方法,例如`jps`和`jstat`。下面将详细解释这些知识点。 1. **Java Development Kit (JDK)**: JDK是Java...
在Java和Python的测试场景下,开发者可能需要编写脚本来解析CSV数据、读取配置文件、处理图形界面的反馈,并且进行设备状态的监控。同时,调试过程可能涉及到对这些问题的诊断和修复,确保所有配置和操作都在预期的...
运维脚本通常使用Shell(如bash、sh)、Python、Perl或Ansible等语言编写。Shell脚本是Linux/Unix系统中最常见的,因为它们简单易学且直接与系统命令交互。Python则因其强大的数据处理能力和丰富的库支持而受到青睐...
例如,C和C++可用于编写性能关键的部分,Python可以用于快速开发和脚本,而Java则适合大型企业级应用。 【标签解读】 "web应用开发":这是指使用各种技术和工具创建可以通过互联网访问的应用程序的过程,涵盖了前端...
kjyw项目可能用Python编写了一些更复杂的功能,如自动化监控、数据处理或与系统交互的模块。Python的灵活性使得它能够轻松处理文本解析、网络通信和系统管理任务。 **3. Nginx快速安装** Nginx是一款高性能的HTTP和...
4. 如果IS_JVM_ALERT为True,还需要监控Java虚拟机的Full GC频率,这可能涉及解析JMX或日志文件。 5. 实现Flask Web服务,处理GET请求以启动/停止监控,以及展示监控结果。 6. 日志管理和轮换,确保日志文件不会过大...
Python 编写 memcached 启动脚本是为了更灵活地管理和控制 memcached 服务,这是一种分布式内存缓存系统,常用于提高数据访问速度。本文将详细介绍如何使用 Python 实现一个 memcached 的启动脚本,并解释相关知识点...