OS X 10.8.5를 실행하는 Mac인 내 집 컴퓨터는 일반적으로 인터넷을 통한 SSH 연결을 허용하지만(포트 전달이 있음) 지금은 잠자기 상태입니다. 집에 없는 동안 여러 가지 이유로 잠에서 깨어나는 경우도 있습니다. SSH 명령을 보내고 싶지만 깨어날 때까지 앉아서 계속 시도할 수 없습니다.
호스트 컴퓨터가 응답할 때까지 SSH 연결, 암호 인증 및 명령 입력을 지연시키는 간단하고 AppleScript가 아닌 방법이 있습니까? 저는 집 밖에서 Mac을 사용하고 있는데 Unix 기반 OS에서 이 작업을 수행할 수 있는 방법을 알고 싶습니다. 일반적으로 연결 시도가 1분 정도 지나면 시간이 초과됩니다.
대부분의 터미널 에뮬레이터에서는 차단 프로세스가 실행되는 동안 명령을 입력할 수 있으며 해당 프로세스가 완료되면 명령이 실행된다는 것을 알고 있습니다. 예는 여전히 실행 중인 동안 git push foo
바로 입력하는 것입니다. git은 커밋이 완료되면 푸시합니다. 터미널 에뮬레이터를 통해 ssh로 이와 같은 작업을 수행하는 데 몇 가지 트릭이 있을 수 있다고 생각했습니다.git commit -a -m "foo"
git commit -a -m "foo"
답변1
컴퓨터가 나타나면 ping으로 확인한 다음 하나 이상의 SSH 명령을 실행할 수 있습니다. 호스트에서 인증서 기반 인증을 설정해야 합니다. 여기에 GNU/Linux의 BASH를 기반으로 한 작은 스크립트가 있지만 Mac OS X에서 사용하는 어떤 것으로든 변환할 수 있을 것 같습니다.
#/bin/bash
hostup=0
while [ $hostup -ne 1 ]; do
ping -c 4 <hostname or IP>
if [ $? -eq 0 ]; then
ssh username@hostname <command to execute>
hostup=1;
done
SSH 라인당 하나의 명령만 사용하고 매개변수를 사용하려면 명령을 인용해야 합니다. 항상 동일한 명령을 실행하려면 홈 컴퓨터에 스크립트가 있어야 할 것입니다.