Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 按进程数和最活跃用户数排列的顶级用户_Linux_Shell - Fatal编程技术网

Linux 按进程数和最活跃用户数排列的顶级用户

Linux 按进程数和最活跃用户数排列的顶级用户,linux,shell,Linux,Shell,问题-编写一个shell脚本,每10秒提供一个排序列表(在一个文件中),其中包含活跃登录的用户以及他们拥有的进程数。每分钟,同一脚本都会按字母顺序在屏幕上打印前10名用户及其组的列表,这些用户a)在过去20秒内拥有最多进程,b)从脚本开始就拥有最活跃的进程。秒数(见10)和用户数(见20)应在命令行中作为参数提供 这就是我现在所拥有的,我不知道是否所有的东西都能工作,但我正在努力使所有东西都能用循环工作。你可以从研究谁,睡眠,while和排序开始。然后,一旦你尝试了某样东西,你就会带着一个问题回

问题-编写一个shell脚本,每10秒提供一个排序列表(在一个文件中),其中包含活跃登录的用户以及他们拥有的进程数。每分钟,同一脚本都会按字母顺序在屏幕上打印前10名用户及其组的列表,这些用户a)在过去20秒内拥有最多进程,b)从脚本开始就拥有最活跃的进程。秒数(见10)和用户数(见20)应在命令行中作为参数提供

这就是我现在所拥有的,我不知道是否所有的东西都能工作,但我正在努力使所有东西都能用循环工作。

你可以从研究
睡眠
while
排序开始。然后,一旦你尝试了某样东西,你就会带着一个问题回来,不管它有多严重。这并不意味着批评,只是帮助将来发布更多可接受的问题

值得一提的是,您的代码可能是以下内容的变体:

if [ -d $1 ] && [ $#2 -gt 0 ]; then
    find $1 ps aux | awk '{ print $1 }' | sed '1 d' | sort | uniq | while read line true; do  #do forever
                                                                        who $line | sort $2   #show loggerd-in users, sorted alphabetically
                                                                        sleep 10              #wait 10 seconds
                                                                    done                      #carry on 
else
     echo "The parameter is invalid"
    exit 1
fi
显然,您需要根据更具体的需求对其进行调整,但是,因为您只要求一个开始,所以它就在这里


您的一些更复杂的需求可能需要
who
以外的工具,并且可能还需要
awk
进行文本处理。你必须研究这一点,因为它毕竟是你的作业。

从某个地方开始,一旦开始,这很容易。而且,你的代码在哪里?我们不解决测试问题,我们帮助你找到解决方案只是出于好奇,背景是什么?是谁给你这个任务的?“从头开始,”国王非常严肃地说,“一直走到最后,然后停下来。”-刘易斯·卡罗尔,《爱丽丝漫游奇境记》:-)你一定是前世的外交官和诗人。。。
#!/usr/bin/env bash

while true ; do    # do forever
    who | sort     # show logged-in users, sorted
    sleep 10       # wait a bit
done               # carry on