Cisco 라우터에서 SSH를 통해 원격 명령을 실행할 때 cron이 중단되는 이유는 무엇입니까?

Cisco 라우터에서 SSH를 통해 원격 명령을 실행할 때 cron이 중단되는 이유는 무엇입니까?

내 임무는 직장의 특정 서버에 장애가 발생하면 즉시 알 수 있도록 하는 것입니다. 내가 거기에 없었기 때문에(실제로는 아무도 없었기 때문에) 내 홈 라우터 Linux 상자(Alpine Linux 실행)에서 실행하여 작동 중인 Cisco 라우터에 연결하고 서버에 핑을 보내는 스크립트를 작성했습니다(서버가 직접 연결되지 않았기 때문에). 인터넷 접속 가능).

저는 Cisco 라우터에 비밀번호 없는 RSA를 설정하고 있는데 이것이 제 스크립트의 주요 부분입니다.

ssh user@work_router 'ping Server_IP' 2>/dev/null | grep -q ' 0 percent'

if [[ $? == 0 ]]
then
    #It's not responding
else
    #Everything is fine
fi

수동으로 실행하면 스크립트가 제대로 작동하지만 cron에 스크립트를 실행하라고 지시하면 작동이 중지됩니다. ssh 출력을 로그 파일로 리디렉션하면서 이것이 문제라는 것을 발견했습니다.

수동으로 실행하면 명령이 다음과 같이 출력됩니다.

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to SERVER_IP, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

cron이 실행되면 출력은 다음과 같습니다.

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to SERVER_IP, timeout is 2 seconds:
!

ping이나 ssh가 실행이 완료되기 전에 중단되는 이유가 있나요?

편집하다:

"ssh -v -v"를 사용하여 터미널에서 스크립트를 실행합니다.

http://pastebin.com/YXxbHq3t

cron을 사용하여 스크립트를 실행하려면 'ssh -v -v'를 사용하세요.

http://pastebin.com/wkYiAWsE

두 파일 사이의 vimdiff를 보면 몇 가지 흥미로운 차이점이 보이지만 제 능력 범위를 벗어납니다. 무슨 일인지 말해 줄 사람 있나요?

관련 정보