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/