当前位置:   article > 正文

Linux监控进程资源消耗_linux监控进程占用

linux监控进程占用

涉及两块,一块是获取资源消耗信息,一块是定时采集。
获取资源消耗用到了top,ps等命令,脚本如下

PROCESS_NAME=$1
SEPARATOR="\t\t"

PROCESS_ID=`ps -ef|grep $PROCESS_NAME |grep -v grep|grep -v PPID|awk '{ print $2}'`

# ps -o pcpu is the average cpu from start, not what we want
# -n should be more than 1 as the first sample is always 0, bug of top?
INFO=`top -p $PROCESS_ID -b -n 2 | grep $PROCESS_ID|awk '{ print $5"\t"$6"\t"$9}'`

# VIRT:virtual memory usage
# RES:resident memory usage
# SHR:shared memory 共享内存
# skip the result of the first time
VIRT=`echo $INFO|awk '{print $4}'`
RES=`echo $INFO|awk '{print $5}'`
CPU=`echo $INFO|awk '{print $6}'`

# Threads
THREADS=`ps -mq $PROCESS_ID | grep -c - -`

#handles
HANDLES=`ls /proc/$PROCESS_ID/fd | wc -l` 

# time
CURRENT=`date "+%Y-%m-%d %H:%M:%S"`

#output
#echo -e "Time${SEPARATOR}{SEPARATOR}PID${SEPARATOR}${SEPARATOR}VIRT${SEPARATOR}RES${SEPARATOR}CPU${SEPARATOR}Threads${SEPARATOR}Handles"
echo -e "$CURRENT$SEPARATOR$PROCESS_ID$SEPARATOR$VIRT$SEPARATOR$RES$SEPARATOR$CPU$SEPARATOR$THREADS$SEPARATOR$HANDLES"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

一块是定时采集,需要用到crontab
crontab -e可以直接编辑需要执行的任务,编辑之后crond会自动reload,任务参考如下:

* * * * * /root/scripts/monitor.sh
  • 1

表示每分钟执行一次monitor.sh脚本
可以通过crontab -l查看是否已经创建的任务。
cron日志:/var/log/cron,可以确认脚本执行情况。
定时任务定义参考:Linux定时任务Crontab命令详解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/75648
推荐阅读
相关标签
  

闽ICP备14008679号