根据条件杀死进程

背景

不知道公司运维做了什么,其实公司就没有运维人员,svn服务器总是还没有完成co就卡死了,最多下载150M。无奈之下写此脚本

#!/bin/sh  
record=0  
while true;  
do  
    cpu=$(ps aux|grep /Applications/Xcode.app/Contents/Developer/usr/bin/svn\ update|grep -v "grep"|awk '{print $3}')  #获取cpu用量,grep <> 筛选包含<>的行, grep -v <> 排除包含<>的行,awk '{print $3}' 取第3列
    pid=$(ps aux|grep /Applications/Xcode.app/Contents/Developer/usr/bin/svn\ update|grep -v "grep"|awk '{print $2}')  
    #cpu check  
    result=${cpu/.*}  # 去除小数,这里不是很严谨,当cpu用量零点几时,就判断成0了
    if [[ $result == 0 ]];then 
        if [[ $record == $pid ]];then 
            kill -9 $pid;
            echo "$pid was killed";
        else
            let record=${pid};
        fi
    else 
        let record=0;
    fi  
    echo `date +%F" "%H:%M:%S`+" cpu:$result% record pid:$record pid:$pid"  
    sleep 30 
done 

脚本虽然不是很严谨,但是还是很好用的。另一脚本就是一个死循环执行svn cleanup,svn update.两个很傻的脚本配合,才能从服务器更新。

你可能感兴趣的:(根据条件杀死进程)