すだち@初投稿です
> 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
Follow-Ups: References:
- [linux-users:33423] Perlでtelnet接続河本陽一[いっつ]
- Prev by Subject: [linux-users:33427] Re: WindowMaker 0.18.1
- Next by Subject: [linux-users:33429] Re: About xcdroast.
- Previous by thread: [linux-users:33425] Re: Perlでtelnet接続
- Next by thread: [linux-users:33430] Re: Perlでtelnet 接続
- Indexes:[Main][Thread]