2
5

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.

RloginのChat Scriptのサンプル

Posted at

RloginのChat Scriptとは

RloginにもTeratermのTTLマクロのように、Rloginの操作の自動化や、機能を拡張するための専用の開発言語がある。

Rloginでは、ScriptとChat Scriptの2種類がある。
実行できるタイミングと、開発言語が異なり、
前者は任意のタイミングで実行でき、teratermにおけるTTLマクロのようなある程度しっかりしたプログラミング言語になっている。
Chat Scriptは対象のログイン直後にしか実行できず、受信文字列と送信文字列を指定し、指定した文字列を受信した場合に、特定の文字列を送信するというシンプルな開発言語なので、凝った操作はできない。

Chat Scriptの主な用途としてはログイン直後に別のサーバにsshでログインする、
いわゆる踏み台経由でのログインなどで使用される。


Chat Scriptの導入

Chat ScriptはRloginのエントリ画面から、Chat Scriptの欄を開くと編集できるようになる。

通常、Rloginの編集画面から編集することになるが、編集画面の使い勝手が悪く、正直面倒。

そのためRloginではテキストエディタを介して、ChatScriptを編集する機能が用意されている。

編集画面で、右クリックするとコピーと貼り付けのメニューが表示されるので、コピーを選択し、テキストエディタに貼り付けすることでができる。

テキストエディタで編集した内容を、再度Rloginに貼り付けると設定を反映することができる。


ログイン後に別のサーバにログインするサンプル

下記が、テキストエディタに貼り付けした内容になっている。

ifで指定した正規表現文字列に合致したときに、thenに指定した文字列を実行するというシンプルな作りになっている。
orは一般的なプログラミング言語におけるelse ifにあたる。

PASSWORDとLOGIN_HOSTの箇所を自分のログインしたいサーバに変更すれば、
任意のサーバに踏み台経由でログインできるようになります。

if "\[.+ ~\]# " then "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@LOGIN_HOST\r"
  if "Are you.+yes/no.+? " then "yes\r"
    if "root@.+password:.+" then "PASSWORD\r"
      if "\[root@.+]# " then "uname -a; date\r"
      fi
    fi
  or "root@.+password:.+" then "PASSWORD\r"
    if "\[root@.+]# " then "uname -a; date\r"
    fi
  or "\[root@.+]# " then "uname -a; date\r"
  fi
fi
2
5
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
2
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?