[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[linux-users:33428] Re: Perlでtelnet接続


すだち@初投稿です

>  Perlでtelnet接続するにはどうするのでしょうか。

CPAN(検索エンジンで探して下さい)から
/CPAN/modules/by-module/Net/Net-Telnet-3.01.tar.gz
のモジュールを持ってきてインストールすれば楽にtelnet操作ができます
# READMEに使い方があります

>  telnet接続して、決まったコマンドを発行してログオフしたいんです。ついでに
> ログも取りたいです。
>  使用するPerlのバージョンは5.004_04です。
> 
> #MN128-SOHOをコントロールしようとしています。

私も以前全く同じ事を考えてPerlの勉強を兼ねて作りました
簡単なスクリプトですが参考になれば幸いです
# 環境はTurboLinux2.0です
mn128connect.pl     接続用
mn128disconnect.pl  切断用
---- mn128connect.pl START ----
#!/usr/bin/perl -w

use Net::Telnet ();

my ($hostname, $username, $passwd, $t, @line);

$hostname       = 'MN128-SOHO';
$username       = 'admin';
$passwd         = 'パスワード';

$t = new Net::Telnet (Timeout => 10, Prompt => '/MN128-SOHO% $/');
$t->open($hostname);
$t->login($username, $passwd);
@lines = $t->cmd("connect 0");
print @lines;
@lines = $t->cmd("show status");
print @lines;
---- mn128connect.pl END ----

mn128connect.pl と mn128disconnect.pl の違いは1行だけです(^^;
$ diff mn128connect.pl mn128disconnect.pl
14c14
< @lines = $t->cmd("connect 0");
---
> @lines = $t->cmd("disconnect all");

パスワードを記述するのでパーミッションを711(又は700)にして下さい
Net::Telnetを使用する場合パスワードは省略できないようなので
MN128-SOHOのパスワードを設定して下さい

以上のスクリプトを次のようにcrontabに登録しテレホーダイ中は
自動接続するようにしています
# 見やすくする為行の継続(\)を使っていますがcrontabで行継続は
# 使えないので注意して下さい
3 23 * * * { date ; $HOME/bin/mn128connect.pl ;} \
	>> $HOME/log/mn128.log 2>&1
55 7 * * * { date ; $HOME/bin/mn128disconnect.pl ;} \
	>> $HOME/log/mn128.log 2>&1
*/2 23,0-7 * * * { date ; ping -c1 プロバイダのホスト ;} \
	> /dev/null 2>&1

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: