Teratermで自動ログインしてコマンドを実行

このブログの初投稿記事だったりするスマートホーム化の記事ですが、最近は全然使っていません。

というのも、IFTTTとTypeTalkのAPI連携がなかなかうまくいかないんですよね。

Hubot調整編でも書きましたが、WebSocketへの接続が定期的に切断されて、20~30秒後に再接続されるのですが、切断されている間に指示したコマンドは実行されません。

もうだったら音声コマンドは一旦あきらめて、Teratermマクロを使用してファイル実行だけで完結できるようにしようと思います。

Teratermマクロの作成

基本的にQiitaの記事参考で、自分用にカスタマイズしています。

自分がよく使うTeratermマクロによる自動ログインのやり方をまとめてみたよ - Qiita
まえがき 自分はよくサーバーに自動ログインさせるのによくTeratermマクロを使います。 とはいえコマンドを覚えるほどではなくて、毎回ググってる次第(´・ω・`) たいがいメンドくなったので、自分メモとして記載します。 な...

サンプルです。
これは対象サーバに鍵認証でssh接続して「/home/xx/shell/aircon_off.sh」というシェルを実行して、teratermを終了するマクロです。

username = 'xxxxx'
hostname = '192.168.xx.xx'
passwdfile = 'N:\path\to\passwd.dat'
keyfile = 'N:\path\to\id_rsa'

msg = 'Enter password for user '
strconcat msg username
passwdkey = username
strconcat passwdkey '@'
strconcat passwdkey hostname
getpassword passwdfile passwdkey password

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

connect msg

logfile = 'N:\path\to\'
strconcat logfile username
strconcat logfile '@'
strconcat logfile hostname
getdate datetime '-%Y%m%d-%H%M%S'
strconcat logfile datetime
strconcat logfile '.log'
logopen logfile 0 1

wait '$'
sendln '/home/xx/shell/aircon_off.sh'
sendln 'exit'

end

単純にコマンドを実行させてクローズするマクロですね。変更箇所はいかになります。

username = 'xxxxx'
→サーバにログインするユーザ名

hostname = '192.168.xx.xx'
→サーバのIPアドレス

passwdfile = 'N:\path\to\passwd.dat'
→鍵にパスフレーズを設定している場合、パスフレーズをキャッシュしておくためのファイル。初回接続時に聞かれて、2回目以降は保存されているので聞かれません。
保存先のフォルダだけ作っておけば『passwd.dat』は勝手に作られます。

keyfile = 'N:\path\to\id_rsa'
→秘密鍵ファイルの保存先


logfile = 'N:\path\to\'
→ログファイルを保存する場合に設定ます。


sendln '/home/xx/shell/aircon_off.sh'
→サーバ側での実行コマンド

シェルの名前からわかる通り、エアコンを消すためのシェルです。最近はエアコン必要ないですけど、コマンド部分だけ書き換えて、照明のON・OFF用のマクロもあります。ぶっちゃけそのくらいしか使っていないんですよね。

スポンサーリンク

コメント

  1. erotik より:

    I really like the design and contents of your web page Almeda Alfy Ress

タイトルとURLをコピーしました