编程的魅力
首页
分类
标签
归档
动态
关于我
hyuga
2021-10-13
221
2021-10-13 22:42:51
原创
PS输出服务进程并按指定条件排序
# PS命令 ## ps aux --sort +rss/rss根据内存正序排 ps -ef --sort +rss | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$12"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' ## ps aux --sort -rss 逆序 ps -ef --sort -rss | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$12"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' ## ps aux --sort -pid/pid ps -ef --sort pid | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$12"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' ## ps aux --sort %cpu/-%cpu 根据cpu排序 ps -ef --sort %cpu | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$12"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' ## 根据端口排序 ps -ef | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$12"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' |sort -k 2 ## 根据端口排序,字段有进程号pid、系统启动时间、启动耗时、最小堆内存、最大堆内存、服务名 ps -ef | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$5"\t"$7"\t"$12"\t"$10"\t"$11"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' |sort -k 4 ## 只查userapp用户下的service-hyuga*和web-hyuga*的进程,根据端口排序 ps -ef -u userapp | egrep '(service-hyuga|web-hyuga)' | grep -v grep| awk '{print $2"\t"$5"\t"$7"\t"$12"\t"$10"\t"$11"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' |sort -k 4 ``` ps -ef -u userapp | egrep '(service-agent|web-agent)' | grep -v grep| awk '{print $2"\t"$5"\t"$7"\t"$12"\t"$10"\t"$11"\t"$NF}'|awk -F"-Dserver.port=" '{print $1 $2}'|awk -F"/" '{print $1 $6}' |sort -k 4 -r ``` ## 拆解 - `egrep` - Linux egrep命令用于在文件内查找指定的字符串 - `-u userapp` - 只查userapp用户下的进程 - `egrep '(service-hyuga|web-hyuga)'` - 只查service-hyuga*和web-hyuga*进程 - `'{print $2"\t"$12"\t"$NF}'` - 拿第二列pid、第12列(-Dserver.port=13202)和($NF)最后一列,"\t"打空格 - `awk -F"-Dserver.port=" '{print $1 $2}'` - 将-Dserver.port=13202进行分割,$2表示取截取后的第二部分,也就是13202,$1是pid - `awk -F"/" '{print $1 $6}'` - 表示将第二个文本(/data/xxx/app.jar)按'/'进行切分,取第六位数值,也就是app,$1是前面的(pid port),拼接出来的效果就是pid port app - `sort -k 4` - 表示按打印出来的第四列参数进行排序 - `sort -k 4 -r` - 表示按打印出来的第四列参数反向排序 - `grep -v grep` - grep -v 是反向查找的意思,比如 grep -v "grep" 就是查找不含有 grep 字段的行; grep -v ^# /etc/profile就是不显示以#开头的行
标签:
Linux
作者:
hyuga
(联系作者)
发表时间:
2021-10-13 22:15
版权声明:自由转载-非商用-非衍生-保持署名
评论
发布
留言
评论