奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 操作系统 >> Unix >> solaris下杀连接已经超时了的进程的脚本
操作系统
Windows XP
Windows 2000
Windows Vista
Windows 2003
Windows 9x
DOS
Linux
Unix
  • FreeBSD从零学起图文手

  • FreeBSD服务器的安装与

  • FreeBSD服务器的安装与

  • FreeBSD服务器的安装与

  • FreeBSD+IPFILTER实现

  • FreeBSD下vmware的网络

  • FreeBSD 5.x 中 gbfs 

  • FREEBSD下VINUM做软RA

  • solaris下杀连接已经超时了的进程的脚本
    字体:

    中华网络安全联盟    作者:佚名    来源:转载    时间:2006-3-31

    今天遇到下面这个问题,在朋友们的帮助下终于成功了,在此表示感谢,同时把
    脚本贴出来 
    希望对大家有帮助,也希望朋友们可以优化这个脚本。 

    公司是做软件开发的,程序员们的程序都要连接数据库进行调试。可是他们的程
    序死了以后 
    数据库还是连接的,这样一来系统的资源(内存)就会被占用被耗尽,于是我就
    要经常去杀死已经死了的进程,可是这样很麻烦,我想编一个shell脚本,可不知
    道如何下手,就请大虾们帮帮忙了:-) 
    例如下面这些 323 325 。。。。。。。。。335 337 这些进程不能被杀,主要是
    要杀后面有(LOCAL=NO)的进程。  我因该怎么做呀? 
    oracle 14527     1  0 10:22:39 ?        0:01 oraclextecs90 (LOCAL=NO) 
    oracle 16865     1  0 11:01:46 ?        0:06 oraclextecs90 (LOCAL=NO) 
    oracle 24346     1  0 00:00:52 ?        0:01 oraclextecs90 (LOCAL=NO) 
    oracle 24802     1  0 13:19:32 ?        0:03 oraclextecs90 (LOCAL=NO) 
    oracle   323     1  0   Apr 12 ?        0:01 ora_pmon_xtecs90 
    oracle   325     1  0   Apr 12 ?        1:35 ora_dbw0_xtecs90 
    oracle   327     1  0   Apr 12 ?        2:45 ora_lgwr_xtecs90 
    oracle   329     1  0   Apr 12 ?        2:45 ora_ckpt_xtecs90 
    oracle   331     1  0   Apr 12 ?        1:54 ora_smon_xtecs90 
    oracle   333     1  0   Apr 12 ?        0:00 ora_reco_xtecs90 
    oracle   335     1  0   Apr 12 ?        0:00 ora_s000_xtecs90 
    oracle   337     1  0   Apr 12 ?        0:00 ora_d000_xtecs90 
    oracle 14229     1  0 10:17:29 ?        0:00 oraclextecs90 (LOCAL=NO) 
    oracle 23079     1  0 22:58:31 ?        0:00 oraclextecs90 (LOCAL=NO) 
    oracle  1117     1  0 14:45:31 ?        0:47 oraclextecs90 (LOCAL=NO) 
    问题的补充:要杀连接已经超时了的进程(时间大于30分钟),而不是要杀死所
    有的LOCAL=NO进程。 
                        
    终于成功了!!!!!!!!!!!!!!!!!! 
    脚本如下: 
    ps -e -o pid -o etime -o args|grep LOCAL=NO>/tmp/tmpfile 
    cat /tmp/tmpfile|while read LINE 
    do 
    TIME=`echo $LINE|awk '{print $2}'` 
    TIME=`echo $TIME|awk -F: '{print $1}'` 
    if [ $TIME -gt 30 ] 
    then 
    echo $LINE >> /tmp/tmpflie2 
    fi 
    done 
    cut -c 1-5 /tmp/tmpfile2 |xargs -t -n1 kill -9 
    rm -f /tmp/tmpfile 
    rm -f /tmp/tmpfile2 
    然后把这个脚本写进crontab,让系统每30分钟运行一次。 

    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.