2

以下が要件である自動化を実行しようとしています:-

「マシン A からマシン B でコマンド「echo c > /proc/sysrq-trigger」を実行して、マシン B がクラッシュし、マシン B が起動した後 (クラッシュ後)、マシン b からマシン A にファイルをコピーするなどの他の処理を実行します。」

この目的のために、次の2つの方法を試しました:-

  1. "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root "sh //proc/sysrq-trigger command>"

  2. "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 :- この長いクエリに対する謝罪。助けてください。前もって感謝します。

4

2 に答える 2

1

これを実装するには、まず 2 つのシステム間でパスワードなしの ssh を作成し、ソース マシンから次のコマンドを実行します。

ssh -l root <remote machine> "echo c > /proc/sysrq-trigger" &
于 2012-10-06T12:35:50.413 に答える