以下が要件である自動化を実行しようとしています:-
「マシン A からマシン B でコマンド「echo c > /proc/sysrq-trigger」を実行して、マシン B がクラッシュし、マシン B が起動した後 (クラッシュ後)、マシン b からマシン A にファイルをコピーするなどの他の処理を実行します。」
この目的のために、次の2つの方法を試しました:-
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root "sh //proc/sysrq-trigger command>"
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root "sh echo c >/proc/sysrq-trigger >"
どちらの場合も、パスワードなしの ssh が設定されているか、expect を通じてパスワードを提供します。したがって、ここではパスワードは問題になりません。問題は、リモート マシン B で sysrq 命令を実行した後に制御がスタックすることです。マシン A には戻らないため、同じ端末で他の操作を実行できます。
# ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root <Machine B> "echo c > /proc/sysrq-trigger "
警告: 既知のホストのリストに「ca-ostest212.us.oracle.com,139.185.48.212」(RSA) が永続的に追加されました。root@ のパスワード:
パスワードを入力した後、マシン B がクラッシュして再起動しますが、マシン A でプロンプトが返されません。これを解決してプロンプトが返され、次のコマンドがマシン A で実行されるようにする方法はありますか?
PS :- この長いクエリに対する謝罪。助けてください。前もって感謝します。