Tera Term マクロの作り方解説 - 基礎・応用・マクロ例

## 1. Tera Term マクロの有無は業務上の死活問題

ネットワークエンジニアの業務では Tera Term を使用してネットワーク機器に接続して CLI 操作することが多くあります。このとき Tera Term マクロの有無は作業所要時間に大きく影響します。特に客先やデータセンターなどでの作業（いわゆる現地作業）を行う際には計画されたタイムスケジュール通りに作業を行う必要がありますが、作業用のマクロを用意できるかどうかが死活問題になる場合があります。

### 1.1. 軽視されるログイン、ログ取得の所要時間

実際作業してみると分かりますがネットワーク機器のコマンドログ取得を手作業で行う場合は以下のような工程があるため意外と時間を要します。

- 対象機器の IP アドレスを確認しコピー&ペーストする
- 対象機器のユーザ名、パスワードを確認しコピー&ペーストする
- 保存ログファイル名を確認しコピー&ペーストしてログ保存を開始する
- Enable パスワードを確認しコピー&ペーストする
- コマンドを確認しコピー&ペーストする
- 必要なコマンドログがエラー無くすべて取得できているか確認する

ログインからログ保存設定までだけでも環境や操作に慣れていない作業員だと2，3分程かかります。これが作業対象機器台数分だけかかるわけです。踏み台を経由する必要がある場合もあり、その場合はさらに複雑になり時間を要します。
しかし、あまり深く考えられずにタイムスケジュール上の作業時間が実際に必要な時間よりも短く設定される場合があります。この場合に作業用のマクロを用意できないとなるとかなり絶望的になります。

### 1.2. マクロを作成できるネットワークエンジニアは多くない

ネットワークエンジニアの中で Tera Term マクロを作成できる人は多くありません。これには以下のような理由があります。

- ネットワーク業界にとってマクロはあくまで補助ツールであり、あれば使うが必須のものではないとされているため
- マクロを作成できる人が身近にいる場合、その人に頼めば良いと考える人が多いため
- 本業とは別の領域であるマクロの習得に時間を投下しようとする人が少ないため
- マクロ作成（プログラミング）を独学で学ぶのは非常にハードなため

### 1.3. Tera Term マクロで生産性向上できる余地が十分にある

上記のように、ネットワーク業界の現状としては Tera Term マクロが十分に活用されている状況ではありません。このため Tera Term マクロによって生産性向上できる余地は十分にあると考えています。

## 2. Tera Term マクロ解説記事一覧

当方、ネットワークエンジニアとして Tera Term マクロを活用してきたため、実際に業務で役立つマクロやその作り方についてある程度知見があります。あえて Tera Term マクロを学ぼうとする人は多くないと思いますが、そのような人たちが効率的に Tera Term マクロを習得できるような環境を提供します。

以下に Tera Term マクロ解説記事をまとめているため Tera Term マクロを学びたいと考えている人は活用してみてください。記事は随時追加していきます。

### 2.1. 基礎知識
- [Tera Term マクロ作成・実行のための基礎知識](https://teramacro.com/ttl-basis/)
- [変数と文字列操作について説明します【基礎知識】](https://teramacro.com/ttl-variable-string/)
- [条件分岐と繰り返し処理を解説【if,for,do】](https://teramacro.com/ttl-if-for/)
- [実行中のマクロファイルの名前を取得する方法](https://teramacro.com/ttl-param1/)

### 2.2. コマンド解説

#### 2.2.1. ログイン
- [機器ログインマクロ作成ガイド【connect】](https://teramacro.com/ttl-connect/)

#### 2.2.2. コマンド実行
- [機器コマンドを実行する方法を解説【wait, sendln】](https://teramacro.com/ttl-wait-sendln/)

#### 2.2.3. ログ保存
- [ログ保存する処理の作成方法を説明します](https://teramacro.com/ttl-log/)

#### 2.2.4. ファイル・フォルダ操作
- [テキストファイルを読み込む方法を解説します](https://teramacro.com/ttl-fileread/)
- [フォルダ操作コマンドを解説【存在チェック,作成】](https://teramacro.com/ttl-folder/)

#### 2.2.5. 文字列操作
- [指定文字で文字列を分割する方法【strsplit】](https://teramacro.com/ttl-strsplit/)
- [文字列の一部を置換する方法【strreplace】](https://teramacro.com/ttl-strreplace/)

#### 2.2.6. 変数関連
- [変数が定義済みか確認する方法【ifdefined】](https://teramacro.com/ttl-ifdefined/)

#### 2.2.7. マクロのモジュール化
- [別のTTLファイルを読み込み処理を実行する方法【include】](https://teramacro.com/ttl-include/)

### 2.3. テクニック

#### 2.3.1. ログイン関連
- [Telnet ログイン処理を認証方式別に行う方法(Cisco機器)](https://teramacro.com/ttl-telnetlogin)
- [Cisco 機器の特権モード移行処理を作成する方法](https://teramacro.com/ttl-ciscoprivilege/)
- [SSH と Telnet の両方に対応したログインマクロを作成するテクニック (Cisco 機器)](https://teramacro.com/ttl-loginsshtelnet/)

#### 2.3.2. コマンド実行関連
- [CLI プロンプトを待ち受けるためのテクニック【waitregex】](https://teramacro.com/ttl-waitregex/)
- [コマンド実行処理の記述を簡略化するテクニック](https://teramacro.com/ttl-commandarray/)

### 2.4. サブルーチン

#### 2.4.1. 基礎知識
- [サブルーチン(自作関数)の作成・使用方法を解説](https://teramacro.com/ttl-subroutine/)

#### 2.4.2. オリジナルサブルーチン

以下は当方オリジナルのサブルーチンです。これらのサブルーチンを組み合わせて使用することで簡単にマクロを作成することができます。

- [BecomePrivilege - Cisco 機器で特権EXECモードに移行する](https://teramacro.com/subroutine-becomeprivilege/)
- [ExecuteCommand - Cisco 機器でコマンドを実行する](https://teramacro.com/subroutine-executecommand/)
- [TelnetLogin - Cisco 機器に Telnet ログインする](https://teramacro.com/subroutine-telnetlogin/)
- [TelnetToCisco - Cisco 機器から Cisco 機器へ Telnet 接続する](https://teramacro.com/subroutine-telnettocisco/)
- [SSHLogin - SSH ログインする](https://teramacro.com/subroutine-sshlogin/)
- [SSHToCisco - Cisco 機器から Cisco 機器へ SSH 接続する](https://teramacro.com/subroutine-sshtocisco/)
- [StartLogging - ログ保存を開始する](https://teramacro.com/subroutine-startlogging/)

### 2.5. オリジナルマクロ

以下は当方オリジナルのマクロです。自分でマクロを作成するよりも出来合いのマクロを使用したい人は以下のマクロを使用してください。

- [踏み台経由で Cisco 機器にログインする Tera Term マクロ](https://teramacro.com/macro-loginindirect/)
- [Cisco 機器にログインしコマンドログを取得する Tera Termマクロ](https://teramacro.com/macro-ciscogetcmdlog/)