运维联盟俱乐部

 找回密码
 立即注册
查看: 261|回复: 0

swap_check

[复制链接]
  • TA的每日心情
    开心
    2023-8-9 11:05
  • 发表于 2023-12-18 08:33:23 | 显示全部楼层 |阅读模式



    1. #!/bin/bash
    2. #description: 这是一个检查哪些进程使用了SWAP分区的脚本
    3. do_swap () {
    4.   SUM=0
    5.   OVERALL=0
    6.   #获取进程目录
    7.   for DIR in `find /proc/ -maxdepth 1 -type d | egrep "^/proc/[0-9]"` ; do
    8.         #获取进程PID
    9.     PID=`echo $DIR | cut -d / -f 3`
    10.     #获取进程名称
    11.     PROGNAME=`ps -p $PID -o comm --no-headers`
    12.     #获取进程的所有分区中SWAP值
    13.     for SWAP in `grep Swap $DIR/smaps 2>/dev/null| awk '{ print $2 }'`
    14.     do
    15.           #进程swap值求和
    16.       let SUM=$SUM+$SWAP
    17.     done
    18.     echo "PID=$PID - Swap used: $SUM - $PROGNAME"
    19.     #总共swap分区值求和
    20.     let OVERALL=$OVERALL+$SUM
    21.     SUM=0
    22.   done
    23.   echo "Overall swap used: $OVERALL"
    24. }
    25. do_swap > tmp.txt
    26. #查询结果排序并截取top10
    27. cat tmp.txt |awk -F[\ \(] '{print $5,$1,$7}' | sort -n | tail -10
    28. cat tmp.txt |tail -1
    29. rm -rf tmp.txt
    复制代码


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    运维联盟俱乐部 ( 冀ICP备19036648号 )

    GMT+8, 2024-5-6 20:14 , Processed in 0.052446 second(s), 21 queries , Gzip On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表