2014-10-08 shell脚本练习题

回复 收藏
十一长假过后,大家继续努力奋斗吧!

今日脚本练习题(由张瑜同学的问题而来):
今天发现网站访问超级慢,top看如下:
QQ图片20141008104333.jpg


有很多sh进程,再ps查看:
QQ图片20141008104414.jpg



这个脚本,运行很慢,因为制定了cron,所以上一次还没有运行完,又有了新的运行任务。太多肯定会导致系统负载升高。当务之急就是先把这些在跑的给kill掉。那么请写一个脚本,直接杀死所有的sh。 核心命令是 kill  pid
2014-10-08 10:44 举报
已邀请:
0

齐天大圣

赞同来自:

  1. for pid in `ps aux |grep clearmem.sh |grep -v 'grep'|awk '{print $2}'`;do kill $pid;done
0

wyatt88

赞同来自:

  1. #!/bin/bash
  2. #name:killbash.sh
  3. #author:ww
  4. #kill ps of bash
  5. logfile=/tmp/killog
  6. pids=`ps -aux | grep "clearmem.sh" | awk ‘$8=="R" {print $2}'`

  7. for pid in $pids
  8. do
  9.   kill -9 $pid 2 >> $logfile
  10.   echo "killed $pid" >> $logfile
  11. done

0

ocean

赞同来自:

ps aux |grep clearmem.sh |grep -v grep|awk '{print $2}'|xargs kill -9
0

So Long

赞同来自:

本帖最后由 程城 于 2014-10-9 09:53 编辑

ps -aux | grep "/bin/clearmem.sh" | awk ‘$8=="R" {print $2}'|xargs -n1 -i{} kill -9  {}

0

Louis

赞同来自:

  1. #!/bin/bash
  2. ## This sciprt is for kill some similar process in one time.
  3. ## Writed by Louis at 2014/10/08 19:55

  4. ps aux|grep '/bin/clearmem.sh'|grep -v 'grep'|awk '{print $2}'|xargs kill -9
0

So Long

赞同来自:


你们这个代码框是怎么弄得啊?
0

Louis

赞同来自:

程城 发表于 2014-10-9 09:53
你们这个代码框是怎么弄得啊?

回复框,这个图标<>,添加代码文字,就好了。
0

chenzudao1234

赞同来自:

killall -9 clearmem.sh
0

阿铭 管理员

赞同来自:


killall 后面跟进程名,你这样是不行的
0

zyfeifie

赞同来自:

   ps -ef | grep '/bin/sh' | grep -v 'grep'| awk '{print $2}' | xargs kill -9>
学习了,xargs 还能这么用
0

游夜

赞同来自:

  1. #/bin/bash
  2. for id in `ps aux|grep -v 'awk'| awk '/clearnmem/{print $2}'`;do
  3. kill $id -9
  4. done
0

cmzsteven

赞同来自:

#!/bin/bash

for i in ` aux|grep 'clearmem.sh'|grep -v grep|awk '{print $2}'`; do
    kill -9 $i
done
0

sss

赞同来自:

  1. ps aux | grep '/bin/clearmem.sh' | grep -v 'grep' | awk '{print $2}' | xargs kill -9


0

一笑而过

赞同来自:

厉害!学习了
0

小怪兽

赞同来自:

shell > pgrep sh | xargs kill
0

翟厚翔

赞同来自:

ps -ef|grep 'sh19.sh'|grep -v 'grep'|awk -F' ' '{print $2}'|xargs kill -9
0

wangzai

赞同来自:

学习
0

bbcw

赞同来自:

  1. #!/bin/bash
  2. for i in `ps aux|grep clearmem.sh|grep -v 'grep'|awk '{print $2}'`;do
  3.     kill -9 $i
  4. done
0

kevinjin

赞同来自:

#! /bin/bash
for pid in `ps aux |grep clearmen.sh |grep -v grep |awk '{print $2}'`
do
    kill $pid
done
0

hhao

赞同来自:

1
0

kw是id

赞同来自:

#!/bin/bash
sh=`top -bn1 |grep sh |awk '{print $1}'`
for i in $sh
do
    kill -9 $i
done

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: