2016-07-13 5 views
0

私は期待して何か問題があります。sshがあり、ディレクトリを作成することを期待しています。

私は別のマシンにsshして、そのマシンにディレクトリを作成しようとしています。コードは私に「許可が拒否された」を与えていることを

spawn ssh [email protected] 
expect "password" 
send "password" 
file mkdir directoryName 

今これは私のコードは次のようになります。

私は

send "mkdir directoryName" 

そこにはエラーがないのですが、それは、ファイルを作成していないと

file mkdir directoryName 

を交換してみてください。おかげさまで

+0

コマンドの一部としてキャリッジリターンを送信してみてください: 'send" mkdir directoryName \ r "' – Kenster

+0

どちらもうまくいきません。 – acz

答えて

0

mkdirコマンドを送信した後、eofが発生するまで待ちます。

send "mkdir directoryName\r" 
expect eof 
1

これはあなたを助けるかもしれない: - それは、リモートマシン上で実行されますよう

#!/usr/bin/expect 
set timeout -1 
spawn -noecho bash -c "ssh [email protected] 'cd /user/bill/work;<your=command>'" 
expect { 
-re "assword:"{ 
    send "mypassword/r" 
}eof{ 
    wait 
} 

あなたはssh内のコマンドを送信する必要があります。上記のスクリプトの

説明: - 。

set timeout -1は無限で、このループを設定します(それは一度spawnプロセスが終了する終了します

-reassword:

eofのための正規表現に一致するまで待機しますspawnが終了しました

関連する問題