2011-12-07 13 views
0

私はdbサーバーで作業していますが、アクセスするために何度もsshを実行する必要があります。このようなもの:コマンドのバッチを使用してサーバーにシーケンシャルSSHを実行する方法

step1) ssh [email protected] 
pw: xxx 

step2) ssh [email protected] 
pw:yyy 

step3) sudo mysqlsh 
pw:zzzz 

step4) mysql -u root -paaaa 
use mydb; 

これらのコマンドをシーケンスで実行するにはどうすればよいですか?私はそれを行うスクリプトバッチを作成したい。どうやってするの?

更新: これはやりましたが機能しません。それは最初にログインするだけです。

#!/usr/local/bin/expect 

spawn ssh [email protected] 
expect "*password:" 
send "xxx\r"; 
interact 

expect "*$ " 
spawn ssh [email protected] 
expect "*password:" 
send "yyy\r"; 
interact 

答えて

3

linuxコマンド "expect"を参照してください。

+0

同上、これを期待しています。 –

+0

上記の4つのステップを実行するスクリプトを投稿できますか? – Emerald214

+0

私はそれを読んで頑張っています。あなたのソリューションは、最初のレベルで「期待」があるため、確実に順番に実行することはできません。 xxx @ xxxにログインした後も、sshを継続的に実行することはできません。 – Emerald214

0

私はソースコードを持っていないものを包むようにPythonで本質的に書き直すことがわかっていますが、通常は "expect"をあきらめています。

私は次のように提案します: ステップ1 & 2:パスワードなしのDSAキーを使用します。 手順3:/ etc/sudoersを変更して、sudoにパスワードを必要としないようにすることができます。 ステップ4:あなたがすでにそこにいるように見えます。

関連する問題