- 论坛徽章:
- 39
|
本帖最后由 关阴月飞 于 2013-11-02 00:20 编辑
回复 1# Auroracxy
提供一个思路吧:
#用ps查找出所有unzip进程:- ps -eo pid,etime,args |grep [u]nzip
复制代码 #使用awk把运行时间(etime)转换成秒数:大于1800的则输出进程pid- awk 'BEGIN{t[1]=86400;t[2]=3600;t[3]=60;t[4]=1}{n=split($2,a,"-|:");for(i=1;i<=n;i++)s+=a[i]*t[i]}s>1800{print $1;s=0}'
复制代码
注:上面的这段awk代码逻辑上有问题,考虑不周,修改成如下:在此多谢@yestreenstars提醒:- awk 'BEGIN{split("1:60:3600:86400",t,":")}{n=split($2,a,"-|:");for(i=n;i;i--)s+=a[i]*t[n-i+1]}s>1800{print $1;s=0}'
复制代码 #把筛选出来pid 杀掉凑一起就是:
- ps -eo pid,etime,args |grep [u]nzip |awk 'BEGIN{split("1:60:3600:86400",t,":")}{n=split($2,a,"-|:");for(i=n;i;i--)s+=a[i]*t[n-i+1]}s>1800{print $1;s=0}' |xargs kill -9
复制代码 |
|