我经常在一台可用的 Linux/HP-UX 服务器上工作(假设它是 server1),然后执行 ssh server2
((假设它是 server2))并开始在另一台 Linux/HP-UX 服务器上工作。然后我可以连接另一台服务器((假设它是 server3)并开始处理它。在 server3 上工作时如何从我来自的服务器获取命令行信息?
那么在 server3 上我想获取来自 server2 的信息,在 server2 上我想获取来自 server1 的信息?它的命令或实用程序是什么?
答案1
至少对于 Linux,who <arg> <arg>
将显示您连接的主机。
$ who hates java
error pts/3 2013-11-20 08:35 (underground)
HP/UX 手册页表明该操作系统也是如此。理应如此;几十年来我一直在各种 Unix 上使用它......
答案2
ssh 总是在成功连接时设置几个环境变量, 包括:
标识连接的客户端和服务器端。该变量包含四个空格分隔的值:客户端 IP 地址、客户端端口号、服务器 IP 地址和服务器端口号。
这是一个例子:
$ ssh user@host
user@host$ echo $SSH_CONNECTION
192.168.223.17 36673 192.168.223.229 22
因此,可以获取此环境变量,然后nslookup
获取有关完成连接的主机的信息:
user@host$ nslookup "${SSH_CONNECTION%% *}"'
...
Name: 192.168.223.17
Address 1: 192.168.223.17 foo.bar
除非who(1)
这也可以通过非交互式 ssh 命令工作,并且不依赖于有缺陷/不可靠的 utmp 机制。
答案3
who
,whoami
并last
想到但没有 HPUX 可供测试