【发布时间】:2015-01-29 14:03:18
【问题描述】:
我正在通过脚本使用这个命令:
watch "who | egrep -i 'user1|user2|user3'"
我正试图让它弹出一个新的终端并说:
“用户已登录”
我想用“&”在后台运行所有东西,但作为命令登录中的用户之一,我想让这个脚本弹出一个新终端并说这个用户已经登录。
我希望它仅在他们登录以及他们注销并重新登录时发生。
我知道如果我在前台运行初始命令,我可以看到我的“自定义”用户列表每 2 秒登录和注销一次,但我希望在后台运行它并让新终端弹出登录的特定用户。
我很抱歉重复我自己,但我会尽可能具体。
【问题讨论】:
-
也许,试试
notify-send而不是终端窗口。 -
新终端或某种桌面通知窗口?此外,这似乎是获取此类通知的一种非常糟糕的方式。我认为观看 syslog 会更好,甚至更好的是某种系统记帐/跟踪解决方案。
-
@anishsane 我会调查一下,我只是想找出一种方法让用户登录的实例回显到新的术语或通知。
-
@Etan Reisner 我只能想象作为一个不熟悉这一切的人,有许多更好的途径来完成这件事。我只是试图以新手的身份去做,并找到一个简短的脚本来通知我当本地系统上的用户登录到他们的帐户时。
-
你真的需要写一个守护进程什么的。您需要检测输出中的差异才能显示它们,而不仅仅是输出。 IE,您需要检测“谁”输出中的新行,或者按照其他人的建议,在系统日志文件中检测与人们进入系统的方式相匹配的新行(例如,通过 ssh)。
kdialog是一个用于弹出消息的有用工具。kdialog --passivepopup "user42 is online"