我该如何制作这个显示某些系统进程相关功能的 bash 脚本?

我该如何制作这个显示某些系统进程相关功能的 bash 脚本?

基本上,我需要编写一个 bash 脚本,作为诊断性能问题的便捷工具。该脚本需要首先确定系统上每个唯一的进程所有者,然后对于系统上当前拥有进程的每个用户,它需要:

  • 确定该用户拥有的进程数
  • 确定该用户拥有的所有进程的内存总和 (SZ)
  • 确定该用户拥有的所有进程的当前 CPU 使用率总和 (C)
  • 确定该用户拥有的累计时间最长的进程(Hog:进程)的累计时间(TIME)和进程名称(CMD)

我猜第一步是确定系统上所有唯一的进程所有者,然后循环遍历每一个?

答案1

如果你想快速查看流程,请使用top并阅读手册页以了解如何按各列排序

要查找(大部分)您想要的信息:

ps ax -o user,sz,pcpu | 
awk '
    NR>1 {n[$1]++; sz[$1]+=$2; cpu[$1]+=$3}
    END {
        for (user in n) 
            printf "%-8s  %4d  %12d  %.1f\n", user, n[user], sz[user], cpu[user]
    }
'

相关内容