Linux:用户登录时发送消息

时间:2017-05-10 09:37:38

标签: linux shell

我必须创建一个Shell,当用户登录时,它将在与之建立连接的终端上打印,其中有多少用户登录了他们的进程数。

第二部分(带有进程的部分)很简单,谢谢你以下命令

ps hax -o user | sort | uniq -c

但我无法继续下去。我不知道如何为每个用户自动启动此脚本,甚至更多,如何在他们的终端上编写。 (我设置了msgwrite之类的命令,但都需要我插入用户名)

1 个答案:

答案 0 :(得分:2)

您的命令ps hax -o user | sort | uniq -c不会显示已登录用户的进程数,但不会显示当前未登录的每个用户(包括系统帐户)的进程数。

只有登录用户的列表才能使用who命令。

要获取每个登录用户的处理数,可以尝试:

for u in `who -u | cut -f1 -d' ' | sort -u`; do echo -n "$u "; ps hx -u $u | wc -l; done;

仅在登录时在用户终端上显示的消息在/etc/motd测试文件中设置。这是静态文件。您需要的是动态生成的motd文件。这可以通过update-motd实现。

在Ubuntu / Debian update-motd配置脚本可以在/etc/update-motd.d/

中找到

我不确定RedHat系统上是否有类似功能,但您可以搜索update-motd或动态广告。