![使用 *nix “last” 命令或类似命令 - 获取包括远程桌面(VNC)登录的工作站](https://linux22.com/image/1221595/%E4%BD%BF%E7%94%A8%20*nix%20%E2%80%9Clast%E2%80%9D%20%E5%91%BD%E4%BB%A4%E6%88%96%E7%B1%BB%E4%BC%BC%E5%91%BD%E4%BB%A4%20-%20%E8%8E%B7%E5%8F%96%E5%8C%85%E6%8B%AC%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%EF%BC%88VNC%EF%BC%89%E7%99%BB%E5%BD%95%E7%9A%84%E5%B7%A5%E4%BD%9C%E7%AB%99.png)
我的情况:我在 SUSE 服务器上设置了一个 Ant 构建过程,多个开发人员可以访问该服务器。构建过程只定义了一个用户,因此所有开发人员都使用该构建用户 - 当自动电子邮件发送给每个人但没有人知道构建消息是发给谁时,事情变得有点混乱。
我想捕获用于触发构建过程的远程用户的用户名(或工作站名称)。我正在查看“last”命令,但有一个缺点:如果有人使用 VNC 连接到图形登录,它似乎会将“127.0.0.1”记录为远程登录,所以我有点卡在这部分。
有人能针对这种情况提出一些建议吗?
答案1
成功解决此问题的关键是使用适当的安全性。这将花费您的用户很少的费用,并让您免于烦恼。每个用户都应该有自己的登录名,或者如果 Ant 具有此功能,则应使用附加的某种用户 ID 远程提交构建作业。
我还将禁用 VNC 的所有用途(管理除外)。毕竟这是服务器。如果用户需要 GUI 访问,他们应该通过 X 进行访问,这将允许多个用户访问并将 GUI 卸载到他们的终端。
但是,如果您的 VNC 服务器记录或可以记录其连接的来源,那么您可以对其进行 grep 并尝试匹配。
答案2
两个想法:
首先,在这一点上我基本同意 Dennis Williamson 的观点。可以通过为每个人设置唯一的登录名并让登录名源自通用/共享环境,或者让开发人员签出代码并在本地构建来避免此问题。也许第二部分由于硬件或其他原因不可行。
您可能会考虑使用远程构建工具。 远程蚂蚁(咆哮)其优点是开源,如果需要,可以非常轻松地设置或修改。我喜欢简单。缺点是支持很少,所以如果你在等待开发人员升级它 - 那么不要指望。服务器任务部分ant-contrib还。
通过远程 ant 任务将本地 user.name 传递到 suse 服务器非常容易。