나는 종종 사용 가능한 하나의 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 매뉴얼 페이지에는 해당 운영 체제에도 해당된다는 내용이 나와 있습니다. 그래야 합니다. 저는 수십 년 동안 다양한 유닉스에서 이 기능을 사용해 왔습니다.
답변2
SSH는 연결 성공 시 항상 여러 개를 설정합니다.환경 변수, 포함하다:
연결의 클라이언트 측과 서버 측을 식별합니다. 이 변수에는 공백으로 구분된 4개의 값(클라이언트 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가 없습니다.