- 浏览: 2538760 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
比如在服务器开启了php死循环程序,为了防止php进程僵死或挂掉,需要sh监控进程并重启拉起。
当日志记录时间超过5分钟就kill重启拉起
#!/bin/bash # # 请使用crontab -e 来输入命令每隔一定时间调用本程序 # */1 * * * * /bin/sh /var/www/test /protected/commands/shell/monitor.sh # #日志文件 LOG_DATE=`date +%Y-%m-%d` LOG_PATH="/var/www/logs/monitor_${LOG_DATE}.log" run_php_path="/usr/local/php/bin/php" if [[ $0 = \* ]] then curfile="$0" else curfile="$PWD/${0#./}" fi php_path=`dirname $curfile` #yiicmd.php所在目录 phpCmdDir=`dirname $php_path` #yii命令行都是执行此php phpCmdName="yiicmd.php" # 配置监控的程序及对应的监控频率时间及允许启动的线程数 shconfig[0]="drawresult" shtime[0]=600 shconfig[1]="kkdrawresult" shtime[1]=600 LOG_START_TIME=`date +'%Y-%m-%d %H:%M:%S'` echo " " >> $LOG_PATH echo "monitor.sh run start...... time : $LOG_START_TIME" >> $LOG_PATH #下面这里不用改路径 IP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'` #当前进程数 MAX_THREAD=4 CUR_THREAD=0 CUR_SERVER=0 # 循环取配置的各个进程一个个检查并关闭 i=0 for index in "${shconfig[@]}" do echo "check ${phpCmdDir} ${phpCmdName} ${index} thread......" >> $LOG_PATH #线程数 # 判断是不是有重复进程,保证一台电脑上只有一个进程 counter=`ps -ef | grep "${phpCmdDir}${phpCmdName} ${index}" | grep -v grep | wc -l` if [ $counter -gt 1 ]; then echo "kill mulithreed ${phpCmdDir}${phpCmdName} ${index}" >> $LOG_PATH ps -ef | grep "${phpCmdDir}${phpCmdName} ${index}" | grep -v "grep" | awk '{print $2}'|xargs kill sleep 1 fi #检查进程 拉起进程 if [ $counter -eq 0 ]; then echo "run ${phpCmdDir}${phpCmdName} ${index} " >> $LOG_PATH ${run_php_path} ${phpCmdDir}${phpCmdName} ${index} & continue 1 fi last_time=`date +%s` FILENAME="/var/www/logs/${index}${CUR_THREAD}.time" echo "${FILENAME}" >>$LOG_PATH if [ -e $FILENAME ] then last_time="`cat ${FILENAME}`" else last_time=0 fi if [ -z $last_time ] then last_time=0 fi current_time=`date +%s` let "diff_time = current_time - $last_time " echo "${current_time} ${last_time} = ${diff_time} > ${shtime[i]}" >> $LOG_PATH # 如果时间超过50秒,重启 if [ "$diff_time" -ge "${shtime[i]}" ] then # 关闭此进程 echo "stop $index......" >> $LOG_PATH chpid="`cat /var/www/logs/${index}.sid`"; kill $chpid; echo "kill ${phpCmdDir}${phpCmdName} ${index} done!" >> $LOG_PATH ps ax|grep "${phpCmdDir}${phpCmdName} ${index}" |grep -v grep|awk '{print $1}'|xargs kill # 休眠两秒后再启动服务 sleep 2 echo "restart ${phpCmdDir}${phpCmdName} ${index}......" >> $LOG_PATH echo "${run_php_path} ${phpCmdDir}${phpCmdName} ${index}" >> $LOG_PATH ${run_php_path} ${phpCmdDir}${phpCmdName} ${index} & sleep 1 shpid="$!"; echo "$shpid" > /var/www/logs/${index}.sid echo "success restart $index......" >> $LOG_PATH fi i=$(($i+1)) done LOG_END_TIME=`date +'%Y-%m-%d %H:%M:%S'` echo "monitor.sh run end......time: $LOG_END_TIME" >> $LOG_PATH
发表评论
-
设置sudo为不需要密码
2015-04-17 09:04 10510有时候我们只需要执 ... -
haproxy 安装配置和负载实例
2015-03-27 11:49 11531一、环境说明实验环境 OS CentOS5.4 192.1 ... -
/dev/mapper/VolGroup00-LogVol00 100% 如何处理
2015-03-03 10:51 8209服务器磁盘跑满了, 命令查看 如下 [root@lo ... -
Tsar开源:淘宝内部大量使用的系统监控工具
2014-08-07 09:51 971Tsar是淘宝的一个用来收集服务器系统和应用信息的采集报告 ... -
Linux运维常用命令 (转载)
2013-01-31 10:23 25241 删除0字节文件find-type f - ... -
[汇总]shell笔试
2013-01-24 17:32 3363http://president.blog.51cto.co ... -
linux恢复 rm -rf 删除的文件:extundelete
2013-01-24 15:47 8910http://blog.csdn.net/pang6013 ... -
网站排障分析常用的命令
2013-01-21 18:17 1397------------------------------- ... -
迁移vmware服务器后Device eth0 does not seem to be present
2013-01-21 10:58 2249用VMware 安装 linux 6.0 ... -
检测 mysql 的sleep进程数
2013-01-04 14:13 1661#!/bin/sh 注:这个脚 ... -
LoadRunner如何监控Linux系统资源 : rpc.rstatd
2012-12-17 14:49 10294一 简述:LoadRunner监控Linux资源时弹出如下错误 ... -
僵尸Z进程和D进程
2012-12-10 16:47 13146-------------- 1 关于ZOMBIE进 ... -
Unix操作系统硬链接与符号链接的区别
2012-12-10 16:08 2021Unix操作系统有很多值得 ... -
nagios配置参数详解
2012-12-04 14:12 9440# Nagios return codes#定 ... -
nagios自定义监控nginx php和ip_conn
2012-12-03 17:57 3169自定义ip_conn.sh :http://zhume ... -
【汇总】shell show收藏
2012-11-29 14:03 1268================== shell从文本取对应的 ... -
Kickstart+PXE+DHCP+TFTP+NFS自动安装Centos5
2012-11-29 11:34 1602http://5ydycm.blog.51cto.com/11 ... -
haproxy+keepalived高可用负载均衡(七层)
2012-11-29 10:36 4006HAproxy是一款基于TCP( ... -
LVS+Keepalived
2012-11-29 10:10 1734http://www.linuxvirtualserver.o ... -
haproxy & LVS*(keepalived和heartbeat) & ng的比较
2012-11-29 10:04 7589http://network.51cto.com/art/ ...
相关推荐
检索 Apache Tomcat 日志中是否包含关键字,包含则重启 Tomcat。 1. 利用 Grep 检索; 2. 利用 Apache Tomcat Startup.sh 和 Shutdown.sh 脚本实现重启。
sysWeblogicMonitorRestart.sh:系统weblogic监控重启(守护进程),当weblogic进程停止时调用脚本(startPssc.sh)自动重启 startPssc.sh:重启weblogic并生成带日期的日志文件 sh\utils:工具文件夹 ...
monitor.io, socket.io的远程监视和调试 monitor.io简单的远程监控和调试中间件 monitor.io 是作为远程服务器运行的node.js的MODULE,它提供远程客户端控制和有关连接到一个 socket.io 实例的套接字的信息。...
"SQLMonitor.rar" 提供了一种解决方案,专为监控Oracle SQL查询而设计,这对于优化数据库性能、排查错误以及确保系统稳定运行是极其有用的。在这个压缩包中,我们主要关注的是如何利用SQLMonitor工具来提升对Oracle ...
用于Labview的进程监控子VI,在高版本的中文版Labview中,不易查找
在本文中,我们将深入探讨“serial-monitor.exe”这款被描述为“非常好用”的串口监控软件,以及它在IT领域的应用。 首先,串口(Serial Port)是一种传统的通信接口,用于设备间的数据传输,常见的串口标准有RS-...
进程分析是IT领域中至关重要的一个环节,它帮助我们理解系统资源的...不过要注意,由于其监控的详细程度,长时间开启Process Monitor可能会对系统性能造成影响,因此在日常使用中应根据需要开启并设置适当的过滤规则。
在第一章第8页的例1中,这个例程可能详细地解释了如何创建和运行一个监控进程的程序。在框图页面,用户可以通过右键点击并选择"Select VI"(在菜单的底部)来调用这个例程,这是一个基本的LabVIEW操作,用于在程序中...
1. ** TrafficMonitor.exe**:这是主程序文件,执行后会在系统任务栏托盘区显示一个图标,通过这个图标用户可以随时查看当前网络的上传和下载速度,以及累计流量信息。它通常会在后台运行,占用系统资源低,不影响...
SQLMonitor.exe SQLMonitor.exe
(1) 二进制包:下载工具包 log_monitor.tar.gz,并解压 (2) 源码编译:make 之后进行参数配置,可以拷贝现有的,各个参数说明如下: log_file=/data/nginx_logs/access.log log_reg=\[(.*) \+0800\] time_format=%d/%b/%Y:...
pcore.sh (0.1) - miniture version of pstack.sh for Solaris, until we work out access to dbx. Note 1: packcore.sh (0.1) - bundle core file and libraries for Oracle Tech Support pstack.sh (0.4) - uses ...
标题中的"ProcessMonitor.zip"表明这是一个包含ProcessMonitor工具的压缩文件。通过解压缩,我们可以看到几个关键文件:`procmon.chm`是帮助文档,提供了关于如何使用ProcessMonitor的详细信息;`Procmon.exe`是32位...
进程监视器,直接导入,老版本中在activity目录下,labview2009找不到了,直接下载
NI Process Monitor.vi LABVIEW
nginx_monitor
Monitor.exe程序的破%解%工具,执行前,请先手工停掉通达的所有服务,否则可能写入不成功! 该工具原理:向Monitor.exe反汇编改写检测代码,直接跳过检测,达到显示加密锁目的。 本工具只适用于某站会员交流应用,...
labview中的一个自带的子函数,在以前系统上有,现在没有了!用于进程监控!
获取网卡,并且测数的数据集,引入名称为【using Echevil;】