한 줄로 텔넷을 사용하여 원격 시스템에서 명령 실행

한 줄로 텔넷을 사용하여 원격 시스템에서 명령 실행

원격 시스템의 wlan0 인터페이스를 모니터링하는 스크립트를 작성해야 합니다. iwconfig wlan0원격 컴퓨터에서 반복적으로 실행하면 됩니다 . 하지만 해당 머신에 로그인하고 텔넷을 통해 이 명령을 실행하는 방법은 무엇입니까? ssh를 통해 이 작업을 수행할 수 있지만 ssh는 로그인하는 데 시간이 걸리고 실행 중에 원격 시스템에 대한 연결이 끊어지면 중단됩니다.

답변1

ssh 명령을 반복적으로 호출하는 대신 ssh를 실행하여 원격 시스템에서 명령을 반복적으로 실행한 다음 로컬에서 출력을 구문 분석하고 사용할 수 있습니다. 그러면 SSH 연결을 계속 실행하고 초기 지연을 참을 필요가 없습니다.

예를 들어:

ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"

또는 netcat을 사용하여 원격 시스템의 출력을 사용자 컴퓨터로 다시 보낼 수 있습니다. 예를 들어 로컬 컴퓨터에서 다음을 실행합니다.

nc -l 9999

그런 다음 원격 시스템에서 다음을 수행합니다.

while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999

여기서 localmachine을 "모니터링"을 수행할 머신의 호스트 또는 IP로 바꾸세요.

해당 포트를 읽는 nc의 출력을 다른 명령으로 파이프할 수도 있습니다.

실제 질문에 더 가깝게 원격 시스템에서 이 작업을 수행하여 텔넷 "서버" 역할을 할 수 있습니다.

while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done

그런 다음 다음을 수행하여 출력을 얻을 수 있습니다.

telnet remotehost 9999

관련 정보