다음 명령을 사용하여 명령줄(비밀번호 필요 없음)에서 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"