LoginSignup
1
1

More than 3 years have passed since last update.

自動ログインしてホスト名とIPを取得するTeratermMacro

Posted at

Ansibleなどまともな構成管理ツールが導入されていればいいんですが、
現実のところ、ドキュメントはクソ!実機情報は正しい!なので、
大抵泥臭いことをしてシステム構成図を確認したり作ったりします。

何百回も同じことする苦行はやりたくないので、
とりあえずLinuxサーバだということがわかれば自動で構成情報を取得したい。
Linux踏み台あればBashスクリプト組むけど、Windows踏み台orローカルPCからのアクセス・・・。
しかもツールはTeratermくらいしか許されていない・・・。
そんな方はどうぞ。

もともとは拾い物のサンプルスクリプトを改変したものなので作りは粗いです。
ご容赦を。

自動ログインしてホスト名とIPを取得するTeratermMacro。
AccessList.csvに記載されたサーバすべてに自動実行する。
実行するコマンドは任意に変更可能。


csvfile = 'AccessList.csv'
separator = ','

; 読み取り専用でCSVファイルを開く
fileopen fh csvfile 0 0

while 1
filereadln fh buf
if result then
break
endif

strsplit buf separator
ip = groupmatchstr1
user = groupmatchstr2
passwd = groupmatchstr3

sprintf2 conbuf '%s /ssh /auth=password /user=%s /passwd=%s' ip user passwd
connect conbuf

; 何か処理をする
pause 3
sendln 'uname -n'
csvfile = 'AccessList.csv'
separator = ','

; 読み取り専用でCSVファイルを開く
fileopen fh csvfile 0 0

while 1
filereadln fh buf
if result then
break
endif

strsplit buf separator
ip = groupmatchstr1
user = groupmatchstr2
passwd = groupmatchstr3

sprintf2 conbuf '%s /ssh /auth=password /user=%s /passwd=%s' ip user passwd
connect conbuf

; 何か処理をする
pause 3
sendln 'uname -n'
        pause 3
sendln "ifconfig |grep inet|awk '{print $2}'|cut -d: -f2 | grep -v -e ^$"
        pause 3
sendln 'exit'

unlink
endwhile

fileclose fh
end
        pause 2
sendln 'exit'

unlink
endwhile

fileclose fh
end

AccessList.csvにログイン情報を羅列しておく


IP_ADDR1,USERNAME1,PASSWORD1
IP_ADDR2,USERNAME2,PASSWORD2
IP_ADDR3,USERNAME3,PASSWORD3
1
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
1
1