自动杀掉占用较多CPU资源的Shell脚本
#!/bin/bash
# March-13-2006
# CPUuse trigger script by Noel
#
# bash code to watch a running program's CPU usage.
# if it's above a set value, it will auto send an email.
# You will need to set a Cron job to run this script every xx minutes
#
# Set some needed things:
#
processToWatch="convert" # in my case I need to watch convert
emailAddress="root@host" # this is my main emailaddress
triggerValue=90 # if the CPU use is above 90% send an email. DO NOT USE a DOT or COMMA!
tempFileName=tmp-cpu # some name of the temp file for the ps, grep data
ps auxww | grep "$processToWatch" | grep -v grep > /tmp/$tempFileName
export LINE
(
read LINE
while [ -n "$LINE" ]
do
set $LINE
read LINE
if [ $(echo "$3" | sed -e 's/\.[0-9]*//g') -gt $triggerValue ]; then
mail -s "CPU message alert for: $processToWatch" $emailAddress <<-END
This is to inform you that the following process: $processToWatch with PID (Process ID) $2 is now using more than your preset $triggerValue value.
Process: $processToWatch is using: $3 of CPU power!
The command used is: $11
END
fi
done
)< /tmp/$tempFileName
相关推荐
-
Linux shell脚本实现CPU预警
如果CPU占用率持续达到80以上则调用打印java线程占用率堆栈的脚本,见https://github.com/oldratlee/useful-shells/blob/master/show-busy-java-threads.sh,具体用法见他的github wiki! #!/bin/bash #cpu idle percent cpu_idle=`top -b -d 1 -n 2 | grep Cpu | awk 'NR>1{print $5}' | cut -f 1 -d ".&q
-
使用shell脚本采集系统cpu、内存、磁盘、网络等信息
一.cpu信息采集 1).采集cpu使用率 采集算法:通过/proc/stat文件采集并计算CPU总使用率或者单个核使用率.以cpu0为例,算法如下:1. cat /proc/stat | grep 'cpu0'得到cpu0的信息2. cpuTotal1=user+nice+system+idle+iowait+irq+softirq3. cpuUsed1=user+nice+system+irq+softirq4. sleep 30秒5. 再次cat /proc/stat | grep 'cp
-
一个用了统计CPU 内存 硬盘 使用率的shell脚本
复制代码 代码如下: #!/bin/bash#This script is use for describle CPU Hard Memery Utilizationtotal=0idle=0system=0user=0nice=0mem=0vmexec=/usr/bin/vmstatwhich sar > /dev/null 2>&1if [ $? -ne 0 ]then ver=`vmstat -V | awk '{printf $3}'` nice=0 temp=`vmst
-
shell脚本监控系统负载、CPU和内存使用情况
在没有nagios监控软件的情况下,只要服务器能上互联网,就可通过发邮件的方式来提醒管理员系统负载与CPU占用的使用情况. 一.安装linux下面的一个邮件客户端msmtp软件(类似于一个foxmail的工具) 1.下载安装: http://downloads.sourceforge.net/msmtp/msmtp-1.4.16.tar.bz2?modtime=1217206451&big_mirror=0 复制代码 代码如下: # tar jxvf msmtp-1.4.16.tar.bz2
-
Linux中使用Shell脚本查看Java线程的CPU使用情况
线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名. 一.首先获得jvm的进程ID: 复制代码 代码如下: ps -ef|grep javatomcat 374 372 1 11:45 ? 00:02:30 jsvc.exec -java-home /usr/java/latest -user tomcat -pidfile
-
Shell脚本实现把进程负载均衡到多核CPU中
有时候,由于架构设计或其他业务本身特点原因,导致有些应用使用CPU很不均衡,所以业务处理集中在一个CPU上,而其它CPU闲得在睡觉.这里有个简单的优化方案实现将各个线程绑定到到多个CPU,从而实现性能的提高. 虽然CPU是一个不错的思路,但是不是杀手锏,其性能能提高多少依赖于各个线程的性能分布是否均匀:所以最好的办法是优化你的程序架构. 在这里分享一个Shell脚本(脚本名为bindcpu2p.sh),通过该脚本可将该进程均匀负载到各个CPU上. 复制代码 代码如下: #!/bin/sh pid
-
统计 cpu 内存 使用率的shell脚本代码
复制代码 代码如下: #!/bin/shclearwhile ((1>0))do NET=$(netstat -anp | grep 1000 | grep EST | wc -l) PRC=$(ps aux | grep thread1 | grep -v grep | grep -v SCREEN | awk '{ print " CPU: " $3 "%, MEM: " $4 "%, RSS: " $6/1024 "M,
-
消耗CPU资源的shell脚本
复制代码 代码如下: #! /bin/sh # filename killcpu.sh if [ $# != 1 ] ; then echo "USAGE: $0 <CPUs>" exit 1; fifor i in `seq $1` do echo -ne " i=0; while true do i=i+1; done" | /bin/sh & pid_array[$i]=$! ; done for i in "
-
自动杀掉占用较多CPU资源的Shell脚本
复制代码 代码如下: #!/bin/bash # March-13-2006# CPUuse trigger script by Noel## bash code to watch a running program's CPU usage.# if it's above a set value, it will auto send an email.# You will need to set a Cron job to run this script every xx minutes## S
-
shell脚本自动检测网络掉线和自动重连
在ppp移植成功后,有时会出现ppp掉线等情况.这篇文章写了一个自动检测连接网络的解决方法. 创建一个shell脚本,在里面添加一下内容.(记得给操作权限) #!/bin/sh //根据你自己的shell类型来选择. while true //先做一个死循环 do ping -c 3 -I ppp0 172.16.1.11 >/dev/null //指定一个出口去ping服务器的局域网ip,将结果重定向到/dev/null里. //-c 3 是指ping执行3次后结束. //-w 3 是指pin
-
MySQL数据库的shell脚本自动备份
MySQL数据库的shell脚本自动备份 经常备份数据库是一个好习惯,虽然数据库损坏或数据丢失的概率很低,但一旦发生这种事情,后悔是没用的.一般网站或应用的后台都有备份数据库的功能按钮,但需要去手工执行.我们需要一种安全的,每天自动备份的方法.下面的这个shell脚本就是能让你通过过设定Crontab来每天备份MySQL数据库的方法. #!/bin/bash # 数据库认证 user="" password="" host="" db_name=
-
win2003中的w3wp.exe进程大量占用cpu资源的各种问题解决方法
1:使用 MicrosoftJet 数据库引擎 Web 应用程序可能停止响应负载,造成假死: 原因:发生此问题是因为 Jet 数据库引擎中存在缺陷. Microsoft Windows Server 2003 上只会出现此问题. 在 Windows Server 2003, COM+ 更改频率 CoFreeUnusedLibraries 函数被调用. 此更改导致 Jet 驱动程序以初始化频繁. 此行为可能导致死锁条件. Web 服务器负载时最常出现此问题. 补丁下载: chs:WindowsSe
-
Mysql占用过高CPU时的优化手段(必看)
Mysql占用CPU过高的时候,该从哪些方面下手进行优化? 占用CPU过高,可以做如下考虑: 1)一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引: 2)打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy.OrderBy排序问题所导致,然后慢慢进行优化改进.比如优化insert语句.优化group
-
Shell脚本编写Nagios插件监控程序资源占用
一般情况下,我们只需要监控程序进程在没在就可以了.但是这次遭遇了这样的事,公司开发的程序,程序进程还在,但是死锁了.导致大范围的影响,更要命的是根本不知道问题出在哪里,还是别的测试部同事帮忙发现的,真是丢尽运维的脸了- 为避免下次再遭遇到这样的情况,分析了这次进程死锁的现象,发现死锁会占用100%的cpu,正常情况下只占用10%以内.决定编写nagios插件,用来监控程序占用的资源,包括cpu,内存等. 一.shell脚本需求分析: 能设置cpu,mem的阈值,资源占用超过阈值就报警. 要
-
耗尽CPU资源的Explored病毒清除法
昨天单位这好几台机器病毒大爆发,因为都不是专家高手,折腾了很久才清理掉,过程中有些体会,觉得可以写下来,跟大家作一番交流. 首先是病毒的发现.昨天出现了两个症状. 一.在局域网上出现广播包(ARP)暴增,甚至把出口堵死. 二.机器CPU资源耗尽. 用任务管理器可以看到可疑的进程explored.exe和services.exe一起占用CPU近100%(后来才知道,这是因为该病毒是通过服务启动的),该进程无法停止,注册表键值: HKEY_LOCAL_MACHINE\SOFTWARE\Microso
-
Shell脚本实现Linux系统和进程资源监控
在服务器运维过程中,经常需要对服务器的各种资源进行监控,例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出现异常时及时报警,通知系统管理员.本文介绍在Linux系统下几种常见的监控需求及其shell脚本的编写. 文章目录: 1.Linux使用 Shell 检查进程是否存在 2.Linux使用 Shell检测进程 CPU 利用率 3.Linux使用 Shell检测进程内存使用量 4.Linux使用 Shell检测进程句柄使用量 5.Linux使用 Shell查看某个 TCP 或
-
Shell脚本实现监控swap空间使用情况和查看占用swap的进程
复制代码 代码如下: #!/bin/bash echo -e `date +%y%m%d%H%M` echo -e "PID\t\tSwap\t\tProc_Name" # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,net等存放的是其他信息) for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]` do # 让进程释放swap的方法只有一个:就是重
随机推荐
- docker实现导出、导入和数据搬迁
- javascript运动详解
- Flex 编程注意之性能优化、垃圾回收的一些总结
- asp.net MVC实现简单的上传功能
- .net/c# memcached缓存获取所有缓存键的方法步骤
- Mysql存储引擎MyISAM的常见问题(表损坏、无法访问、磁盘空间不足)
- android RecyclerView侧滑菜单,滑动删除,长按拖拽,下拉刷新上拉加载
- node.js中的querystring.escape方法使用说明
- java使用JNA(Java Native Access)调用dll的方法
- Oracle基本查询过滤排序示例解析
- JS非Alert实现网页右下角“未读信息”效果弹窗
- 学习SQL语句(强大的group by与select from模式)
- 找回Redhat Linux 7.2的超级用户密码
- JDK源码之PriorityQueue解析
- C语言编程中分配内存空间的相关函数
- C#线程池操作方法
- JAVA冒泡排序和二分查找的实现
- java 中内部类的实例详解
- iOS自定义日期、时间、城市选择器实例代码
- Android为TextView添加字体库和设置描边的方法