我感兴趣的是了解每个 Linux 用户执行了哪些应用程序/脚本。
我可以使用以下命令查找特定用户运行的作业数
ps -u <USERNAME> -U <USERNAME>
但是,它显示的是特定用户的工作,而我希望它适用于所有用户或所有本地用户。
例如,以下命令统计每个用户的作业数量
ps -eo user=|sort|uniq -c
我想要一个类似的命令,但我想查看用户运行的所有进程。谢谢。
@update 例如
Uname PID CMD
user1 1010 systemd
user1 1011 sshd
user1 1012 bash
user1 1013 ps
user2 1020 systemd
user2 1021 sshd
user2 1022 bash
user2 1023 ps
user2 1024 tux
user2 1025 python
user2 1026 python
.......
.......
.......
答案1
您几乎已经完成了,只需要对用户名进行循环。编写一个 shell 脚本,例如ps_users.sh
,
#!/bin/bash
NUSERPROC=$(ps -eo user=|sort|uniq)
for user in ${NUSERPROC} ; do
echo "========= ${user} ========="
ps -u ${user} -U ${user}
done
(当然,不包括行号)然后运行sh ./ps_users.sh
。调整循环的内容以满足您的需要。
答案2
列出属于特定用户,运行以下命令:
sudo crontab –u username –l
用实际的用户名替换用户名您正在观看。