• 締切済み

テルネットしコマンドを自動実行

今回PHPで複数台のルータにログインし、確認コマンドを実行・結果を出力するプログラムを作りたいと考えていますが、知識不足のためうまくいきません。 皆様のお力をお貸いただければと思います。 1.CSVファイルからルータのリスト(IPアドレス)を読み込みTelnetする (ログイン名やパスワードは全て同じ) 2.確認コマンドを実行 3.実行結果を新しいCSVファイルに出力する。 よろしくお願い致します。

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

  • ki073
  • ベストアンサー率77% (491/634)
回答No.2

PHPにあるかどうか分かりませんが、一般的なスクリプト言語の場合だと telnetやssh,rshなどで接続できるモジュールがよくあります。それを使うと質問されてる接続が簡単にできます。 またそれら無い場合にもspawn ,expectを使うことでtelnetなどの対話型の接続に対して質問欄のようなことができます。 もしPHPにその機能がないのなら、bashなどにはありますのでshellを呼び出してその機能を使うことができます。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  telnetは対話型アプリなので、バッチ処理の場合はrsh(リモートシェル)を使います。ルーターにrshの実行に必要なデーモンが動いていないと実行できません。 では。

関連するQ&A

  • 実行結果が表示されません

    今回PHPからCISCOのルータにテルネット経由にてログインしコマンドを実行、実行結果を出力するプログラムを考えています。 一応ログインし、実行しているようですが・・・実行結果が表示されないです。 何かほかに良い方法があればアドバイス等を頂ければと思います。 <?php // Telnet接続 $tel = new Telnet('ホスト名'); if( @!$tel->connect() ) { return 'TELNET_FAIL'; } elseif( @!$tel->login('ユーザー名' , 'パスワード') ) { return 'TELNET_FAIL'; } $tel->setPrompt($host.'#'); $tel->exec("terminal length 0"); $result[0]=exec("show momory statics"); print $result[0]; ?>

    • 締切済み
    • PHP
  • シェル(sh)で実行コマンドを標準出力するには

    kshでコマンドを実行して結果をファイルにリダイレクトしています。 結果のみファイルに出力され、実行したコマンドを確認することができません。 実行コマンドも一緒にファイルに出力する方法がありましたら教えてください。 なお、実行コマンドをechoするってのはなしで。 多量のコマンドを実行する場合にめんどくさいので。

  • サーバー自動ログインソフトを作りたい

    バッチもしくはVBスクリプトでサーバーに自動ログインする ソフトを作ろうとしているのですが、うまくいきません。 具体的な環境は以下のとおりです。 サーバー    IP:10.10.2.1   ログイン名:login   パスワード:pass 現在、コマンドプロンプトから手動で  C:\>telnet 10.10.2.1 でログインし、ログイン名とパスワードを聞いてくるので、手動で ログイン名:login パスワード:pass と入力しているのですが、この作業を自動化したいです。 バッチファイルでtelnetコマンドを実行し、その後VBスクリプトを起動し、ログイン名とパスワードを送ろうと思ったのですが、 telnetコマンドはサーバーと接続しただけでは次のコマンドに命令権を渡さないようで、VBスクリプトが起動しないです。 バッチとVBスクリプト以外でもいいので、上記の一連の作業を自動化する方法がわかるという方、ご教授願います。

  • コマンド実行結果のファイル出力

    systeminfo echo list volume | diskpart のコマンドを実行結果をテキストファイルに出力したいのですが、 echo list volume | diskpart > "c:\status.txt" systeminfo >> "c:\status.txt" としてバッチで実行しても、何も出力されていないません。 コマンドを画面で入力すると、画面に表示されます。 どうしたらよいか教えてください。

  • phpからlinuxコマンドを実行したい

    CentOS6で test.phpを作成しました。 <?php $buf = ''; exec("yum list installed | grep php | cut -d' ' -f1", $buf);   var_dump($buf[0]); ?> コマンド:php test.php を実行したのですが、実行結果が帰ってきません。 (当然phpをインストールしているので、パッケージは導入されています。) 多分「’」がうまく機能してないのだと思うのですが、 どのように記述すればコマンドの実行結果が表示されるのでしょうか ご教授お願いします。

  • telnetで接続した先のコマンドのバッチファイルを作成したい

    毎回動作確認のため、 1、クライアントPCからサーバへtelnetで接続して、 2、接続後、ログイン、動作確認のコマンドを打ちます。 毎回同じコマンドを打つので、 バッチファイルで対応しようかと思いますが可能でしょうか。 それとも他の別の方法がありますでしょうか。 宜しくお願いします。 1のバッチファイル telnet 192.168.0.2 2のバッチファイル (192.168.0.2のログインユーザ名) (パスワード) (動作確認のコマンド)… のようなイメージかなぁと考えています。 よろしくおねがいします。

  • IIS + PHP からのWindowsコマンド実行について

    IIS + PHP からのWindowsコマンド実行について IIS+PHPの環境を用いて、ディスククォータの使用率を表示したいと考えています。 そこで、テストとして下記のスクリプトを実行しましたが、dir の実行結果は表示されましたが、dirquotaの実行結果が表示されませんでした。 また、コマンドプロンプトからphp.exe test.phpを実行しましたが同様です。 もちろん、コマンドプロンプトからdirquotaを実行すれば正しく稼働し表示されます。 Listの代わりにaddを使ってもコマンドが実行された気配がないので「表示されない」より「実行されない」のかと考えていますが、dirコマンドとdirquotaコマンドに違いがあるのでしょうか。 == test.php ============= <pre> <?php passthru("dir"); passthru("dirquota quota list d:\\"); ?> </pre> ========================= 【 環境 】 OS : Windows 2008 Server PHP: 5.3(セーフモードOFF)

    • 締切済み
    • PHP
  • PostgreSQLログイン中にOSコマンド

    Oracleだと、SQLplusログイン中に、!をコマンドの前につければ、OSコマンドが使えます。 PostgreSQLで、ログイン中には同じような方法はありますか? copyコマンドで、CSVファイルに出力されたか確認する場合、lsコマンドでファイルの存在を確認したいのですが。 PostgreSQL初心者です。 ご存知の方いらっしゃいました、宜しくお願いします。

  • telnetをスクリプトで実行する

    WindowsXPからルーターにtelnetでログインし、 ポリシーを変更する。といった操作を、バッチファイルを使用し、 自動化できないかと考えています。 telnetの自動ログイン、ルーターのコマンドの送信と いった処理はどのように書けばいいのでしょうか? バッチファイルと、ルーターの設定が書かれたtxtファイルで できればと思っています。 FTPの「-s:」のようなオプション等はないのでしょうか?

  • Rubyを使ってtelnetで実行したコマンドの標準出力を取得したいのですが…

    Rubyを使って、以下のような手順のプログラムを作成しています。 1.Telnetでサーバ(Fedora7)にログイン 2.ifconfigを実行 3.標準出力される結果をファイルに記録 次のように試してみたのですが、結果をファイルに記録することが、できないでいます。 require 'net/telnet' log = File.open("ifconfig.log",'a+') # リモートホスト foobar に接続 telnet = Net::Telnet.new("Host" => "192.168.1.1") {|c| print c} telnet.login("username", "password") {|c| print c} telnet.cmd("ifconfig"){|c| log.print(c)} log.close 標準出力される結果をファイルに記録する方法を知っているかたがおられましたら、教えていただけませんでしょうか。 宜しくお願いいたします。

専門家に質問してみよう