SSH経由でリモートコマンドを実行し、リモートコマンドを送信する前に一時停止する必要があります

SSH経由でリモートコマンドを実行し、リモートコマンドを送信する前に一時停止する必要があります

私の使命は、リモートシステムで実行されるコマンドを自動化することです。これまでのところ、sshコマンドの構文の大部分を見つけましたが、問題は最後にリモートコマンドを追加すると接続されますが、リモートコマンドを実行せずに停止することです。ログインが完全に完了する前にコマンドが実行されるためです。リモートシステムは一般的なLinuxシステムではありません。 Watchguardファイアウォールなので、独自のオペレーティングシステムなので、仕事が難しくなります。コマンドを入力する前に5秒または10秒間一時停止するスクリプトを作成する方法はありますか?私の上司は、システムにSSHを接続してコマンドを実行するプロセスを自動化できるアプリについて言及しましたが、それが何であるかを覚えていませんでした。したがって、Linuxでこれを行うことができるアプリを知っている人はいます。図。

ベストアンサー1

次の予想されるスクリプトを使用してください(インストールする必要があるかもしれません)。予想される最初):

#!/usr/bin/expect
spawn ssh -l myuser 10.0.0.1
expect "assword:"
send "mypassword\r"
expect "#"
sleep 5
send "command\r"
expect "#"
send "exit\r"

スクリプトはコマンドを実行し、sshセッションに文字列が表示されるのを待ち、Enterキーでssh -l myuser 10.0.0.1終わるパスワードを入力します(大文字と小文字のバージョンに対応するために、意図的に「password:」プロンプトから「p」を省略しました)。次に、オペレーティングシステムのプロンプトが表示されるのを待ちます(オペレーティングシステムのプロンプトでない場合は適切に変更する必要があります)、5秒待ってからcommandと入力してEnterキーを押します。メッセージが表示されるまで(つまり、コマンドが完了するまで)再び待ってから入力し、Enterキーを押してセッションを終了してから切断します。assword:\r#exit

おすすめ記事