TeraTermマクロでmysql実行

毎回TeraTermにIP・ユーザー情報を入力するのが面倒だと思ったのがきっかけで、TeraTermマクロを初めて作成してみました。

 

 

 

TeraTermをインストールする手順は割愛しますが、

TeraTermをダウンロードするとマクロのサンプルが入っているのでそれを参考にしました。

 

今回はssh2login.ttlを参考にしています。(左画像)

 

 

TeraTermマクロで使用できるコマンドは以下のサイトを参考にしています。

 

https://ttssh2.osdn.jp/manual/ja/macro/command/index.html


 

 

 

今回は、接続先IPとユーザー名をべた書きし、パスワードは暗号化する方法で作成しました。

更に、mysqlコマンドを実行させ、DBにログインしています。

(この段階ではDBログイン情報はべた書きしてます。)

 

strconcat <string> <string2> で文字列変数stringにstring2を継ぎ足すという意味です。
ログインは以下のようにしている訳ですね。

192.168.13.90:22 /ssh /auth=password /user=root /passwd=<password.iniからrootユーザのパスワードを取得>

このpassword.iniですが、マクロを配置しているディレクトリに既にファイルがあればそのファイルを読み取り、
無ければ自動で新規作成されるようになっています。


 


↓sampleマクロ①

 

; sample macro of Tera Term
;
; File: login.ttl
; Description: auto login with SSH2 protocol
; Environment: generic
; Update: 2018/7/5
; Author: Waka

username = 'root'
hostname = '192.168.13.90'
passwdfile = 'password.ini'


getpassword passwdfile username passwd

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


msg = hostname
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg passwd


connect msg

wait '[root@testserver ~]#'

sendln 'mysql -u trapper net_snmp -ptrapass'
sendln 'select * from cachepcs order by registration;'


 

 

 

でもこれだとサーバー接続時のログイン情報は暗号化されますが、DB接続時のパスワードが見えちゃうのでセキュリティ的に微妙です。

自分だけが使用するのであれば問題はなさそうですが、誰かと共有はできなさそう、、、、

という訳で、DB接続時のパスワードをssh接続のときと同様暗号化しようとしました。

先に言いますが、失敗しています。

 

 

 

 


sampleマクロ②

 

~省略~

 

sqluser = 'trapper'

 

 

hoge= 'mysql -u'
strconcat hoge sqluser
strconcat hoge ' net_snmp -p'
strconcat hoge passwd

 

connect hoge

 


 

 

sampleマクロ②は失敗作です。

sshのときと全く同じようにすればDB接続時のパスワードも暗号化されうまくいくかと思いましたが甘かったです。

ここでアイデアをもらいました。(現場で私の隣に座っている何でも屋の人です)

sendlnというコマンドでパスワードを入力する方法がありました。

 

 

 

 


sampleマクロ③

 

~省略~

 

getpassword passwdfile 'sqlpasswd' sqlpasswd

 

sendln 'mysql -u trapper net_snmp -p'
PasswordPrompt = 'Enter password:'
wait   PasswordPrompt
sendln sqlpasswd


 

 

 

sampleマクロ③はバッチリ成功しました!!!

 

TeraTermマクロは初の試みでしたが、慣れれば時間短縮になりますしこれから身につけていきたいですね!