2017-01-02 3 views
-1

tp-linkスイッチ(状態、説明、速度の変更など)を管理するためのアンマネージスクリプトを作成しようとしています。 「私は(sshで)私のスイッチに接続した場合Linuxのアンマネージタスク

enable 
configure 
interface gigabitEthernet 1/0/20 
shutdown 

が、私は問題なくすべてのコマンドを実行することができますが、私は、コマンドラインドン使用:ポートを無効にします:TP-LINKは、例えば...シスコ同様の接続を使用していますtは動作します:

例えば:

ssh x.x.x.x "sh interface configuration" 

このコマンドは、私のポートのステータスを表示することしか示さないべきではありません。ユーザーとパスワードは大丈夫です。 SSHは返品します:

Authenticated with partial success. 
Connection to 192.168.20.26 closed by remote host. 

これを実行する他のオプションはありますか?

私はこれをexpectとtelnetで実行してみてください。結果はOKですが、もしssh接続でexpectを実行しても、どちらもうまくいきません。

#!/usr/bin/expect -f 

spawn -noecho telnet 192.168.20.26 

expect "User:" 
send -- "admin\r" 
expect "Password:" 
send -- "mypass\r" 
send -- "enable\r" 
send -- "configure\r" 
send -- "interface gigabitEthernet 1/0/20\r" 
send -- "description hola\r" 
send -- "exit\r" 
send -- "exit\r" 
send -- "exit\r" 
send -- "exit\r" 
send -- "exit\r" 

interact 

スクリプトが正常に動作しますが、私は、リモートホストからこのスクリプトを実行した場合に作業を行いません。

は、スクリプトが期待するマイ。

よろしくお願いいたします。

+0

期待していないコードがいくつか用意されていれば、助けてくれるかもしれません。そうでなければ、あまりにも一般的すぎます。 – favoretti

+0

こんにちは@favoretti。私はexpectスクリプトで投稿を編集しました。問題はスクリプトではありません。これは正常に動作しますが、リモートホストで期待通りに動作しないと動作しません(ログインしないでください)。 – user3368224

+0

'telnet'を' ssh'で置き換えると、何もしません。 'ssh -T'を使ってみましたか(PTYを割り当てないでください)。 – favoretti

答えて

0

上記の問題は、sshが自動的にPTYの割り当てに失敗したことが原因です。 ssh -tは問題を修正しました。