Bash、Expect:SSHが機能していない後のコマンドの実行

sauumum

VMにログインして、そこでコマンドを実行する必要があります。同じトピックに関連するすべての質問に答えましたが、EXPECTで解決策が見つかりませんでした。SSHの使用中にパスワードを渡す必要があるため、EXPECTを使用しています。

スクリプトの実行中に「コマンドが見つかりませんエラー」が発生しますが、手動で正常に動作しています。

#!/usr/bin/expect -f

set user [lindex $argv 0]
set to [lindex $argv 1]
set pass [lindex $argv 2]
set command [lindex $argv 3]
puts "$user, $to , $command and $pass ."
# connect via scp
spawn sudo ssh -t -t -v $user@$to << EOF
    ls
EOF

#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send $pass\n
}
}
interact

受信したエラー:

spawn sudo ssh -t -t -v username @ server_ip << EOF「ls」の実行中にコマンド名「ls」が無効です(ファイル「./establishSSHConnection.sh」の10行目)

ジェフフィッシャー

'ヒア'ドキュメントでリモートシステムにコマンドを送信しようとしているようです。

spawn sudo ssh -t -t -v $user@$to << EOF
    ls
EOF

代わりに、「exp_send」を使用して、「interact」の直前にlsコマンドを送信する必要があります。つまり、「here」ドキュメントを削除します。

spawn sudo ssh -t -t -v $user@$to

そして最後にlsコマンドをここに置きます:

expect {
    -re ".*es.*o.*" {
        exp_send "yes\r"
        exp_continue
    }
    -re ".*sword.*" {
        exp_send "$pass\r"
    }
}
exp_send "ls\r"
interact

編集:

ああ、私は誤解しました。コマンドを実行したいだけの場合は、もう一方の端に接続を閉じるように指示する必要があります。

expect {
    -re ".*es.*o.*" {
        exp_send "yes\r"
        exp_continue
    }
    -re ".*sword.*" {
        exp_send "$pass\r"
    }
}
exp_send "ls\r"
exp_send "exit\r"
expect {
    eof {puts "Connection closed"}
    timeout {puts "Connection timed out"}
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

sendmailのコマンドの実行が機能しない

分類Dev

「bash」コマンドを実行しないと、SUまたはSSHログイン後にBASHまたは.BASHRCが正しく機能しない

分類Dev

なぜexpectのinteractコマンドが機能しないのですか?

分類Dev

scpコマンドがbashスクリプトのexpect内で機能しない

分類Dev

adobeanimateのコマンドとして実行されるjsflのexportSVGが機能しない

分類Dev

AWSでシェルコマンドの実行が機能しない

分類Dev

Java-シェルコマンドの実行が機能しない

分類Dev

MakefileのBashコマンドIDが機能しない

分類Dev

fishでsudoを使用して最後のコマンドを実行すると、引数がない場合にのみ機能しますか?

分類Dev

コマンドを生成して実行するためのループが機能しない

分類Dev

特定のコマンドの後にBashオートコンプリートが機能しない

分類Dev

手動で実行してもgolangコマンドが機能しない

分類Dev

新しいアプリの実行が原因でPythonOSコマンドが機能しない

分類Dev

実行コマンドが機能しないC#

分類Dev

ファイルの名前変更後にBashコピーコマンドが機能しない

分類Dev

新しい行のエコー コマンドが機能しない

分類Dev

SSHコマンドが機能しないのはなぜですか?

分類Dev

SSH:「get」コマンドが機能しないのはなぜですか?

分類Dev

ssh上で複数行のbashコマンドを実行しても機能しません

分類Dev

引用符が一致しないexpectコマンドを実行しているPythonの問題:python -c'os.system( "expect -c ...") '

分類Dev

gradlebddコマンドが最初の実行で機能しないのはなぜですか

分類Dev

「機能していない」dubuggerに侵入..コードの実行が続く

分類Dev

Laravelの「envoyrun」コマンドがsshキーで機能しない

分類Dev

npmの複数コマンドの実行&&は機能していませんが、&と|| しますか

分類Dev

Windows上のUbuntu(WSL)のBashでnpmコマンドが機能しない

分類Dev

bash_completionが機能しない(一部のコマンドの場合)

分類Dev

実行時のWPFウィンドウマージンが機能しない

分類Dev

channelExec.setCommand()シェルコマンドの実行時に機能しない

分類Dev

コマンドを実行するためのユーザー権限の追加が機能しない

Related 関連記事

  1. 1

    sendmailのコマンドの実行が機能しない

  2. 2

    「bash」コマンドを実行しないと、SUまたはSSHログイン後にBASHまたは.BASHRCが正しく機能しない

  3. 3

    なぜexpectのinteractコマンドが機能しないのですか?

  4. 4

    scpコマンドがbashスクリプトのexpect内で機能しない

  5. 5

    adobeanimateのコマンドとして実行されるjsflのexportSVGが機能しない

  6. 6

    AWSでシェルコマンドの実行が機能しない

  7. 7

    Java-シェルコマンドの実行が機能しない

  8. 8

    MakefileのBashコマンドIDが機能しない

  9. 9

    fishでsudoを使用して最後のコマンドを実行すると、引数がない場合にのみ機能しますか?

  10. 10

    コマンドを生成して実行するためのループが機能しない

  11. 11

    特定のコマンドの後にBashオートコンプリートが機能しない

  12. 12

    手動で実行してもgolangコマンドが機能しない

  13. 13

    新しいアプリの実行が原因でPythonOSコマンドが機能しない

  14. 14

    実行コマンドが機能しないC#

  15. 15

    ファイルの名前変更後にBashコピーコマンドが機能しない

  16. 16

    新しい行のエコー コマンドが機能しない

  17. 17

    SSHコマンドが機能しないのはなぜですか?

  18. 18

    SSH:「get」コマンドが機能しないのはなぜですか?

  19. 19

    ssh上で複数行のbashコマンドを実行しても機能しません

  20. 20

    引用符が一致しないexpectコマンドを実行しているPythonの問題:python -c'os.system( "expect -c ...") '

  21. 21

    gradlebddコマンドが最初の実行で機能しないのはなぜですか

  22. 22

    「機能していない」dubuggerに侵入..コードの実行が続く

  23. 23

    Laravelの「envoyrun」コマンドがsshキーで機能しない

  24. 24

    npmの複数コマンドの実行&&は機能していませんが、&と|| しますか

  25. 25

    Windows上のUbuntu(WSL)のBashでnpmコマンドが機能しない

  26. 26

    bash_completionが機能しない(一部のコマンドの場合)

  27. 27

    実行時のWPFウィンドウマージンが機能しない

  28. 28

    channelExec.setCommand()シェルコマンドの実行時に機能しない

  29. 29

    コマンドを実行するためのユーザー権限の追加が機能しない

ホットタグ

アーカイブ