crontab에서 ssh에 연결할 수 없습니다

crontab에서 ssh에 연결할 수 없습니다

다음 명령을 사용하여 명령줄(비밀번호 필요 없음)에서 SSH 연결을 만들 수 있습니다.

ssh -R 9900:localhost:22 user@host

시스템이 재부팅될 때 실행하려면 이 명령이 필요하므로 이를 bash 스크립트에 넣고 crontab에 다음 줄을 추가했습니다.

@reboot /home/me/script.sh > output

하지만 출력에 다음 오류가 표시됩니다. ssh: Unable to 해결할 호스트 이름 myhost: 알 수 없는 이름 또는 서비스

인터넷 연결이 설정되기 전에 스크립트가 시작되기 때문인 것 같습니다. ssh 명령 앞에 하나를 추가 했지만 sleep(180)도움이 되지 않았습니다. 어떤 제안이 있으십니까?

답변1

이상적으로 이것은 를 사용하여 수행되어서는 안 됩니다 cron. 이것이 바로 초기화 시스템의 목적입니다. 네트워크 상태에 따라 서비스를 생성할 수 있습니다.

그러나 다음을 사용하려는 경우 cron:

#!/bin/sh

host="foo.bar.com"

# Wait for host's SSH server to become accessible
while ! ssh "user@$host" exit >/dev/null 2>&1; then
    sleep 1
fi

ssh -R 9900:localhost:22 "user@$host"

관련 정보