shell的简单实用

1.获取进程ID

#!/bin/sh

function GetPid #user #name
{
    # = 号两边不能有空格
    PUSER=$1    
    PNAME=$2
    # 换行时,在‘\’后紧跟一个ENTER
    # ps : 查看系统中瞬间进程信息,参数 -u 列出属于该用户的程序的状况
    # grep:用于查找文件中符合字符串的当前行,参数 -v 反向选择,即显示没有“搜索字符串”的那一行
    # sed:一个非交互文本编辑器,它编辑文件或标准输入导出的文件,一次只能处理一行内容,参数 -n 读取下一行输入行,用下一个命令处理新的行而不是用第一个命令。 p 标志打印匹配行
    # awk:一种编程语言,用于Linux/Unix下对文本和数据进行处理,数据可以来自来自标准输入,一个或多个文件,或其他命令的输出。它支持用户自定义函数和动态正则表达式。
    pid=`ps -u $PUSER|grep $PNAME|grep -v grep|grep -v vi|grep -v dbx\
    |grep -v tail|grep -v start|grep -v stop|sed -n 1p|awk '{print $1}'`
    echo $pid
}

PID='GetPid root hello'
# [ ] 中括号的两侧都需要空格,== 两侧需要空格
if [ "-$PID" == "-" ]
then
{
    echo "The process does not exist"
}
else
    echo $PID
fi

获取进程占用CPU利用率

#!/bin/sh

function GetPid #user #name
{
    PUSER=$1
    PNAME=$2

    PID=`ps -u $PUSER|grep $PNAME|grep -v grep|grep -v vi|grep -v dbx\
    |grep -v tail|grep -v start|grep -v stop|sed -n 1p|awk '{print $1}'`
    echo $PID
}

function GetCpu
{
    # awk -F.   以‘.’作为分隔符,ps -p 进程号 
    cpuvalue=`ps -p $1 -o pcpu|grep -v CPU|awk '{print $1}'|awk -F. '{print $1}'`
    echo $cpuvalue
}

function CheckCpu
{
    PID=$1
    cpu=`GetCpu $PID`
    echo "The process of cpu is $cpu"

    if [ "$cpu" -gt "80" ]
    then
    {
        echo "The process of cpu is larger than 80%"
    }
    else
    {
        echo "The process of cpu is normal"
    }
    fi
}

#首先要获取进程号,并且判断是否存在该进程
pid=`GetPid root $1`
if [ "-$pid" == "-" ]
then
{
    echo "The process does not exist"
}
else
{
    CheckCpu $pid
}
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值