rpm -qa grep httpd
대상 호스트 10.9.100.67에서 트리거되는 다음 명령을 생성하고 실행하는 자동화된 도구가 있습니다.
ssh -vvv -o StrictHostKeyChecking=no -o 'IdentityFile="/app/ssh_keys/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o ConnectTimeout=8 10.9.100.67 'rpm -qa | grep httpd'
참고: 위의 ssh 연결 명령은 제대로 작동합니다. 10.9.50.20(소스)에서 대상 호스트 10.9.100.67로 성공적으로 연결할 수 있습니다.
문제는 서버 10.9.100.67에 있습니다. 10.9.100.67 서버에 로그인하여 시작하면 서버가 rpm -qa | grep httpd
멈추고 Ctrl+C
퍼티 쉘에서도 도움이 되지 않습니다. Putty 세션을 종료하는 것 외에는 다른 옵션이 없습니다.
이 게시물의 요구 사항은 10.9.100.67의 중단 문제를 해결하는 것이 아닙니다 rpm -qa | grep httpd
. 그러나 필요한 것은 ssh
명령이 실패하거나 5분 이내에 응답하지 않고 성공하는 경우 10.9의 대상 10.9.100.67에 대한 연결을 닫아야 한다는 것입니다. 50.20 .
명령 시간 초과 옵션도 시도했지만 ssh 컨트롤이 소스를 반환하지 않습니다.
ssh -vvv -o StrictHostKeyChecking=no -o 'IdentityFile="/app/ssh_keys/id_rsa"' -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o StrictHostKeyChecking=no -o ConnectTimeout=8 10.9.100.67 'timeout 5s rpm -qa | grep httpd'
참고: -o ConnectTimeout=10
도움이 되지 않습니다. ssh는 우리가 원하는 10.9.100.67에서 10.9.50.20으로 결코 반환하지 않습니다.
다음 명령은 stackoverflow 도움말에서 가져온 것이지만 pkill이 존재하지 않기 때문에 AiX 시스템에서는 작동하지 않습니다.
ssh 10.9.100.67 '( sleep 60 && kill -9 0 ) 2>/dev/null & rpm -qa | grep httpd; RC=$? ; sleep 1 ; pkill -P $! ; exit $RC'
AIX에서도 작동하는 솔루션을 제공할 수 있습니까?
답변1
원격 호스트에서만 실행 하려는 경우 rpm -qa | grep httpd
대체 솔루션이 있습니다. 도구 sshpass
. 설치 및 공용 사용은 이 링크를 참고하시면 됩니다.
https://www.tecmint.com/sshpass-non-interactive-ssh-login-shell-script-ssh-password/