0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rubyでtelnetする

Posted at

ネットワークエンジニアの筆者は、NW機器にtelnetすることが多かった経験があります。
入力ミスがあると嫌なので、自動でconfig(設定)を取得したり、設定を変えたりするスクリプトを作りました。
その時のノウハウをざっくりと。

#1.gemのインストール
Rubyは標準のライブラリと追加しなければならないライブラリがあります。
今回はnet/telnetをインストールする必要があります。

gem install net-telnet

#2.telnetで機器の設定を取得

telnet.rb
require "net/telnet"

telnet_server = "IP address" #telnet接続したい機器のIPアドレス
user = "user" #telnet接続したい機器のログインユーザ名
password = "password" #telnet接続したい機器のログインパスワード
telnet_port = 23#telnet接続したい機器のtelnetポート番号(デフォルトは23)
timeout = 60

telnet = Net::Telnet.new("Host" => telnet_server, "Timeout" => timeout, "Port" => telnet_port)
	telnet.login(user, password)
	telnet.cmd("enable command") #特権モード切替コマンド
	telnet.cmd("show config command") #機器の設定を表示
	telnet.cmd("exit")
	telnet.close

#3.機器の設定をファイルに保存したい場合

telnet-store.rb

require "net/telnet"

telnet_server = "IP address" #telnet接続したい機器のIPアドレス
user = "user" #telnet接続したい機器のログインユーザ名
password = "password" #telnet接続したい機器のログインパスワード
telnet_port = 23#telnet接続したい機器のtelnetポート番号(デフォルトは23)
timeout = 60
file = "cmdfile" #設定を保存したいファイルパス

$stdout = File.open(file, 'a')
telnet = Net::Telnet.new("Host" => telnet_server, "Timeout" => timeout, "Port" => telnet_port)
	telnet.login(user, password)
	telnet.cmd("enable command") #特権モード切替コマンド
	telnet.cmd("show config command") #機器の設定を表示
	telnet.cmd("exit")
	telnet.close
$stdout = STDOUT

#4.まとめ
 昨今、GUIの用意されていない機器は少数派ですがスクリプトによる自動化の基本となるコマンドです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?