php - 实用shell小脚本

作为一个phper,会一点运维不过分吧!

php-fpm 进程数和内存占用

命令行

ps aux | awk '$11 ~ /^php-fpm/ {num++;size+=$6} END {printf "进程总数: %d\n占用内存: %dm\n平均内存: %.2fm\n", num, size/1048, size/1048/num}'

 写成一个小脚本

#!/usr/bin/env bash
# 显示php-fpm进程占用

function printRed() {
    echo -e "\033[0;91m$*\033[0m"
}
# 也可以直接使用命令
ps_info=$(ps aux | awk '$11 ~ /^php-fpm/ {num++;size+=$6} END {printf "进程总数: %d\n占用内存: %dm\n平均内存: %.2fm\n", num, size/1048, size/1048/num}')
printRed "$ps_info"

灵活的awk脚本

# ps_memmory.awk 显示匹配进程的运行内存
# 需要传入变量 pattern, 匹配命令名称
# usage:   awk -f ps_memory.awk pattern=php-fpm
BEGIN {
    if (pattern == 0) {
        print "没有传入变量 pattern"
        print "Usage: ps aux | awk -v pattern=php-fpm -f ps_memory.awk"
        exit
    } else {
        print "匹配模式: "pattern
    }
}
$11 ~ pattern {
    num++
    cpu+=$3
    mem+=$4
    vsz+=$5
    rss+=$6
}
END {
    if (num) {
        printf "进 程 数: %d\n总 内 存: %dMb\n内存占比: %.1f%%\n平均内存: %.1fMb\n     CPU: %.1f%%\n",
                num, rss/1048, mem, rss/1048/num, cpu
    } else {
        print "没有找到进程"
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值