2011-12-27 15 views
0

私の要件は、portコマンドとfireコマンドでtelnetするスクリプトです。
これを手動でbashモードから実行できます。
だから、私は次のように入力します。私は、コマンド「telnetの0 3300」
が、私はプロンプトが「コマンドを入力します」と言ってます火のすべての
まず「LOGIN:sogadm:sogadmを;」
これで私はそのポートにログインしました。
この後、再び「Enter Command:」というプロンプトが表示されます。
だから私は私の特定のコマンドを発射することができます。 0
エスケープ文字に接続0.0.0.0をしようとシェルスクリプトからのtelnetとシェルコマンドからのfireコマンド


のbash-3.00#のtelnet 0 3300
...
さ:

私はそれがどのようになるには、ログを示した以下

'^]' LOGIN:sogadm:
CONNECTED CAIに接続しています...

プロセスcai3300 ...

は、コマンド入力sogadmを。
RESP:0;
コマンドを入力してください:SET:AIRSUB:MSISDN、551100116:ACTIONTYPE、REFILL:REFILLPROFILEID、1:TRANSACTIONAMOUNT、500000:TRANSACTIONCURRENCY、DZD;
RESP:17200;
は、次のコマンドを入力します。


はので、私は私のスクリプトは、このすべてをやりたいです。
助けてください。
ありがとうございます

+0

出力はどのアプリケーションですか?または、あなたがスクリプトにしたいものの例として、それを捨てましたか? –

答えて

-1

ssh、あなたがそれを使用できる場合は、あなたの人生をはるかに簡単にすることができます。
"ssh -luserコマンド"を実行することができます。パスワードを要求するので、パスワードを入力する必要があります。
パスワードを入力しないようにする方法はいくつかあります。 this linkは片道を説明しています。

+0

sshが動作しません – kaka

0

look up "here" documentsを入力してください。何かのように

telnet 0 3300 << EndOfTelnet 
sogadm:sogadm; 
0; 
SET:AIRSUB:MSISDN,551100116:ACTIONTYPE,REFILL:REFILLPROFILEID,1:TRANSACTIONAMOUNT,500000:TRANSACTIONCURRENCY,DZD; 
EndOfTelnet 

あなたが求めていることをしてください。スクリプトなどにパスワードを含めることについての標準的な注意点

+0

-1 HEREDOCへの無関係なリファレンスとダムのtelnetへのエコーコマンド – Sorin

+0

ちょっと友人がこれを試して、それはある程度まで働いています: --- – kaka

1

私はexpectとautoexpectを検索することをお勧めします。 Expectは、あなたが持っているもの(パスワードを要求する、コマンドを期待する)などの対話型プログラムを制御するように設計されています。 Autoexpectは、サンプルセッションから適切なexpectスクリプトを生成できるスクリプトです。

ランのようなもの:

autoexpect telnet 0 3300 

、あなたが完了した後、生成されたスクリプトはscript.exp

これは、このようなラインを経由してスクリプトに統合することができ

になります。 スクリプトを期待しています。 exp

スクリプトの内容のほとんど。それはコメントだの経験、あなたがそれらを削除し、あなたのbashスクリプトでスクリプトをコピーし、それをこのような何かを実行することができます:上記は一例であり、あなたはドキュメントを読んで、あなたのニーズに適応する必要があること

echo 'set timeout -1 
spawn telnet 0 3300 
expect "Enter command:" 
send -- "LOGIN:sogadm:sogadm;" 
expect "Enter command:" 
send -- "SET:AIRSUB:MSISDN,551100116:ACTIONTYPE,REFILL:REFILLPROFILEID,1:TRANSACTIONAMOUNT,500000:TRANSACTIONCURRENCY,DZD;"' | expect 

注意を。

また、あなたはPerlとネット:: Telnetを使用するように切り替えることができますが、nc(netcatを)コマンドを使用することができます

-1

(私はあなたがそれをより快適にしている場合、Pythonが同様の何かを持っていることを確信している):

cat command_list | nc 0 3300 

ここで、command_listは、入力するコマンドのリストを1行に1つずつ含むファイルです。

これはエラーを考慮しないことに注意してください。つまり、パスワードが変更されたことなどがあります。ワンショットは入力の各行を順番に送信します。