원격 호스트에 SSH로 연결하고 핑하는 쉘 스크립트 만들기

원격 호스트에 SSH로 연결하고 핑하는 쉘 스크립트 만들기

원격 호스트에 SSH를 통해 연결하고 해당 호스트에서 다른 IP로 핑을 보내고 싶습니다. 그러나 다음 스크립트를 사용하면 호스트에 SSH로만 연결할 수 있습니다.

#!/bin/sh

sshpass -p <password> ssh -t -o StrictHostKeyChecking=no <username>@<remote host>
/usr/sbin/ping <some IP>

그런 다음 원격 호스트에서 (내 소스 호스트로 다시) 존재한 후 핑이 시작됩니다.

즉, 내 스크립트가 실행되면 원격 호스트와 SSH 연결이 설정됩니다. 이 원격 호스트에서는 Ping이 발생하지 않습니다. 원격 호스트를 수동으로 종료하면 원래 호스트에서 ping이 다시 시작됩니다.

소스 호스트 대신 원격 호스트에서 핑을 시작하려면 어떻게 해야 합니까?

답변1

ssh원격 시스템에서 실행될 명령을 인수로 받아들입니다.

ssh user@host ping ip-addr

이 작업은 ping ip-addr원격 컴퓨터에서 실행된 후 연결이 종료됩니다.

ping이렇게 다음 줄에 명령을 넣으면

ssh user@host
ping ip-addr

ssh기본적으로 대화형 셸은 원격 시스템에서 실행됩니다. 셸이 종료되면 제어가 스크립트로 반환되고 ping명령이 로컬로 실행됩니다.

답변2

원격 시스템에서 실행하려면 명령에 작은따옴표를 사용하십시오 ssh. 여러 명령을 실행하는 것도 편리합니다.

#!/bin/sh

sshpass -p <password> ssh -t -o StrictHostKeyChecking=no <username>@<remote host> '
/usr/sbin/ping <some IP>'

관련 정보